From 9a98671f830413e017627cbd0e431922a331738a Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Sat, 12 May 2018 23:37:59 +0200 Subject: [PATCH] Calculate child preferred size based on max size If panel component child exceeds the preferred size, correctly send this new max size to other children, so they can resize/reposition themselves correctly. Signed-off-by: Tomas Slusny --- .../ui/overlay/components/PanelComponent.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/PanelComponent.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/PanelComponent.java index 2c7a09cafa..8c2f91d432 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/PanelComponent.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/PanelComponent.java @@ -100,6 +100,22 @@ public class PanelComponent implements LayoutableRenderableEntity preferredSize.width - border.x - border.width, preferredSize.height - border.y - border.height); + // Adjust preferred size of children based on orientation and children + // sizes exceeding the parent size + switch (orientation) + { + case VERTICAL: + childPreferredSize.setSize( + Math.max(childDimensions.width, childPreferredSize.width), + childPreferredSize.height); + break; + case HORIZONTAL: + childPreferredSize.setSize( + childPreferredSize.width, + Math.max(childDimensions.height, childPreferredSize.height)); + break; + } + // Render all children for (final LayoutableRenderableEntity child : children) {