From 82e1729555dc57cc6932c017afb1c4969292ff9c Mon Sep 17 00:00:00 2001 From: Dimitri Schoolwerth Date: Thu, 25 Aug 2011 23:13:00 +0000 Subject: [PATCH] Fixed width of scrollbars in wxUniv. The AdjustSize renderer function for wxUniv's GTK and MSW theme adjusted the size of a scrollbar while it already had the correct size, resulting in scrollbars being twice as wide. Fixed by not adjusting the size of a scrollbar anymore in AdjustSize. Closes #11660. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68901 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/univ/themes/gtk.cpp | 13 +++++++------ src/univ/themes/win32.cpp | 14 ++++++-------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/univ/themes/gtk.cpp b/src/univ/themes/gtk.cpp index 2f383b594c..102560c637 100644 --- a/src/univ/themes/gtk.cpp +++ b/src/univ/themes/gtk.cpp @@ -2267,12 +2267,13 @@ void wxGTKRenderer::AdjustSize(wxSize *size, const wxWindow *window) #if wxUSE_SCROLLBAR if ( wxDynamicCast(window, wxScrollBar) ) { - // we only set the width of vert scrollbars and height of the - // horizontal ones - if ( window->GetWindowStyle() & wxSB_HORIZONTAL ) - size->y = m_sizeScrollbarArrow.x; - else - size->x = m_sizeScrollbarArrow.x; + /* + Don't adjust the size for a scrollbar as its DoGetBestClientSize + already has the correct size set. Any size changes here would get + added to the best size, making the scrollbar larger. + Also skip border width adjustments, they don't make sense for us. + */ + return; } else #endif // wxUSE_SCROLLBAR diff --git a/src/univ/themes/win32.cpp b/src/univ/themes/win32.cpp index 0738111495..7150c7a98b 100644 --- a/src/univ/themes/win32.cpp +++ b/src/univ/themes/win32.cpp @@ -3142,14 +3142,12 @@ void wxWin32Renderer::AdjustSize(wxSize *size, const wxWindow *window) #if wxUSE_SCROLLBAR if ( wxDynamicCast(window, wxScrollBar) ) { - // we only set the width of vert scrollbars and height of the - // horizontal ones - if ( window->GetWindowStyle() & wxSB_HORIZONTAL ) - size->y = m_sizeScrollbarArrow.y; - else - size->x = m_sizeScrollbarArrow.x; - - // skip border width adjustments, they don't make sense for us + /* + Don't adjust the size for a scrollbar as its DoGetBestClientSize + already has the correct size set. Any size changes here would get + added to the best size, making the scrollbar larger. + Also skip border width adjustments, they don't make sense for us. + */ return; } #endif // wxUSE_SCROLLBAR -- 2.45.2