Bladeren bron

Don't apply scrollbar size to auto-sized controls in containers that have scrolling disabled.

Adam Blake 13 jaren geleden
bovenliggende
commit
ab5329e486
1 gewijzigde bestanden met toevoegingen van 14 en 4 verwijderingen
  1. 14 4
      gameplay/src/Layout.cpp

+ 14 - 4
gameplay/src/Layout.cpp

@@ -19,11 +19,21 @@ void Layout::align(Control* control, const Container* container)
         const Rectangle& containerBounds = container->getBounds();
         const Theme::Border& containerBorder = container->getBorder(container->getState());
         const Theme::Padding& containerPadding = container->getPadding();
-        const Rectangle& verticalScrollBarBounds = container->getImageRegion("verticalScrollBar", container->getState());
-        const Rectangle& horizontalScrollBarBounds = container->getImageRegion("horizontalScrollBar", container->getState());
 
-        float clipWidth = containerBounds.width - containerBorder.left - containerBorder.right - containerPadding.left - containerPadding.right - verticalScrollBarBounds.width;
-        float clipHeight = containerBounds.height - containerBorder.top - containerBorder.bottom - containerPadding.top - containerPadding.bottom - horizontalScrollBarBounds.height;
+        float clipWidth;
+        float clipHeight; 
+        if (container->getScroll() != Container::SCROLL_NONE)
+        {
+            const Rectangle& verticalScrollBarBounds = container->getImageRegion("verticalScrollBar", container->getState());
+            const Rectangle& horizontalScrollBarBounds = container->getImageRegion("horizontalScrollBar", container->getState());
+            clipWidth = containerBounds.width - containerBorder.left - containerBorder.right - containerPadding.left - containerPadding.right - verticalScrollBarBounds.width;
+            clipHeight = containerBounds.height - containerBorder.top - containerBorder.bottom - containerPadding.top - containerPadding.bottom - horizontalScrollBarBounds.height;
+        }
+        else
+        {
+            clipWidth = containerBounds.width - containerBorder.left - containerBorder.right - containerPadding.left - containerPadding.right;
+            clipHeight = containerBounds.height - containerBorder.top - containerBorder.bottom - containerPadding.top - containerPadding.bottom;
+        }
 
         if (control->_autoWidth)
         {