From 0829ea607bf322125cbe0e7959b628bcdaa2868b Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Sat, 12 May 2018 18:31:08 +0200 Subject: [PATCH 1/2] Reset clue overlay preferred size each render To prevent affecting other clue types, reset the preferred size of the clue scroll panel component to default value each render cycle, as the clues can modify it. Signed-off-by: Tomas Slusny --- .../runelite/client/plugins/cluescrolls/ClueScrollOverlay.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java index 49e4c76558..0b9839e28f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java @@ -33,6 +33,7 @@ import javax.inject.Inject; import net.runelite.client.plugins.cluescrolls.clues.ClueScroll; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPriority; +import net.runelite.client.ui.overlay.components.ComponentConstants; import net.runelite.client.ui.overlay.components.PanelComponent; public class ClueScrollOverlay extends Overlay @@ -60,6 +61,7 @@ public class ClueScrollOverlay extends Overlay } panelComponent.getChildren().clear(); + panelComponent.setPreferredSize(new Dimension(ComponentConstants.STANDARD_WIDTH, 0)); clue.makeOverlayHint(panelComponent, plugin); From 9a98671f830413e017627cbd0e431922a331738a Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Sat, 12 May 2018 23:37:59 +0200 Subject: [PATCH 2/2] 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) {