Przeglądaj źródła

Fixing GUI element enable/disable functionality

BearishSun 10 lat temu
rodzic
commit
ee496ab2cb

+ 2 - 0
BansheeEngine/Source/BsGUILayoutX.cpp

@@ -76,6 +76,8 @@ namespace BansheeEngine
 				minSize.x += childSizeRange.min.x + paddingX;
 				minSize.y = std::max((UINT32)minSize.y, childSizeRange.min.y + paddingY);
 			}
+			else
+				childSizeRange = LayoutSizeRange();
 
 			childIdx++;
 		}

+ 2 - 0
BansheeEngine/Source/BsGUILayoutY.cpp

@@ -76,6 +76,8 @@ namespace BansheeEngine
 				minSize.y += childSizeRange.min.y + paddingY;
 				minSize.x = std::max((UINT32)minSize.x, childSizeRange.min.x + paddingX);
 			}
+			else
+				childSizeRange = LayoutSizeRange();
 
 			childIdx++;
 		}

+ 2 - 0
BansheeEngine/Source/BsGUIPanel.cpp

@@ -114,6 +114,8 @@ namespace BansheeEngine
 				minSize.x = std::max(minSize.x, childMax.x);
 				minSize.y = std::max(minSize.y, childMax.y);
 			}
+			else
+				childSizeRange = LayoutSizeRange();
 
 			childIdx++;
 		}

+ 4 - 3
BansheeEngine/Source/BsGUIScrollArea.cpp

@@ -90,10 +90,11 @@ namespace BansheeEngine
 		UINT32 childIdx = 0;
 		for (auto& child : mChildren)
 		{
-			if (!child->_isEnabled())
-				continue;
+			if (child->_isEnabled())
+				mChildSizeRanges[childIdx] = child->_getLayoutSizeRange();
+			else
+				mChildSizeRanges[childIdx] = LayoutSizeRange();
 
-			mChildSizeRanges[childIdx] = child->_getLayoutSizeRange();
 			childIdx++;
 		}