]> git.saurik.com Git - wxWidgets.git/commitdiff
Fixed width of scrollbars in wxUniv.
authorDimitri Schoolwerth <dimitri.schoolwerth@gmail.com>
Thu, 25 Aug 2011 23:13:00 +0000 (23:13 +0000)
committerDimitri Schoolwerth <dimitri.schoolwerth@gmail.com>
Thu, 25 Aug 2011 23:13:00 +0000 (23:13 +0000)
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
src/univ/themes/win32.cpp

index 2f383b594ccb08ff67ab506344c00901d33a0a79..102560c637e410f3c1f5c5925e904041aa465a4a 100644 (file)
@@ -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
index 0738111495a0b93b22f2add9b068c0c6afcff6fb..7150c7a98b7af70783afd77c8b8046b28e38b12f 100644 (file)
@@ -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