From c91bcbfb94de77d8aa1c168e904209efb7e2618b Mon Sep 17 00:00:00 2001 From: Alexander Tkachev Date: Wed, 31 Jul 2019 00:15:55 +0700 Subject: GUI: Fix scrollbars - removed +1px in ListWidget, added in lordhoto's 2007 commit 68eb28a (aka r29971 in svn) `Fix for bug #1670082 "GUI: Modern theme gfx glitch in launcher".`, because it made clip this last line of scrollbar in all themes, which doesn't look good. In 2007 theme was written in .ini, which is not the case now. I don't see any glitches after removing this "fix"; - fixed how scrollbar top and bottom scroll buttons are drawn in ThemeEngine::drawScrollbar: there were these weird magic numbers, but in reality extra space that buttons should occupy is hardcoded in scrollbar.cpp (ScrollBarWidget) and is just +1px. --- gui/ThemeEngine.cpp | 2 +- gui/widgets/list.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gui/ThemeEngine.cpp b/gui/ThemeEngine.cpp index 7e42bc0ab3..598d9c2ab8 100644 --- a/gui/ThemeEngine.cpp +++ b/gui/ThemeEngine.cpp @@ -1030,7 +1030,7 @@ void ThemeEngine::drawScrollbar(const Common::Rect &r, int sliderY, int sliderHe drawDD(kDDScrollbarBase, r); Common::Rect r2 = r; - const int buttonExtra = (r.width() * 120) / 100; + const int buttonExtra = r.width() + 1; // scrollbar.cpp's UP_DOWN_BOX_HEIGHT r2.bottom = r2.top + buttonExtra; drawDD(scrollState == kScrollbarStateUp ? kDDScrollbarButtonHover : kDDScrollbarButtonIdle, r2, diff --git a/gui/widgets/list.cpp b/gui/widgets/list.cpp index 6dd4ab4dd5..74239f889d 100644 --- a/gui/widgets/list.cpp +++ b/gui/widgets/list.cpp @@ -41,7 +41,7 @@ ListWidget::ListWidget(Dialog *boss, const String &name, const char *tooltip, ui // This ensures that _entriesPerPage is properly initialized. reflowLayout(); - _scrollBar = new ScrollBarWidget(this, _w - _scrollBarWidth + 1, 0, _scrollBarWidth, _h); + _scrollBar = new ScrollBarWidget(this, _w - _scrollBarWidth, 0, _scrollBarWidth, _h); _scrollBar->setTarget(this); setFlags(WIDGET_ENABLED | WIDGET_CLEARBG | WIDGET_RETAIN_FOCUS | WIDGET_WANT_TICKLE); @@ -72,7 +72,7 @@ ListWidget::ListWidget(Dialog *boss, int x, int y, int w, int h, const char *too // This ensures that _entriesPerPage is properly initialized. reflowLayout(); - _scrollBar = new ScrollBarWidget(this, _w - _scrollBarWidth + 1, 0, _scrollBarWidth, _h); + _scrollBar = new ScrollBarWidget(this, _w - _scrollBarWidth, 0, _scrollBarWidth, _h); _scrollBar->setTarget(this); setFlags(WIDGET_ENABLED | WIDGET_CLEARBG | WIDGET_RETAIN_FOCUS | WIDGET_WANT_TICKLE); @@ -658,7 +658,7 @@ void ListWidget::reflowLayout() { assert(_entriesPerPage > 0); if (_scrollBar) { - _scrollBar->resize(_w - _scrollBarWidth + 1, 0, _scrollBarWidth, _h); + _scrollBar->resize(_w - _scrollBarWidth, 0, _scrollBarWidth, _h); scrollBarRecalc(); scrollToCurrent(); } -- cgit v1.2.3