From fc183c13afb91e7715e75e9d0205e380e409dccf Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 19 Sep 2021 15:44:49 -0400 Subject: [PATCH] xp tracker overlay: treat counter=off progressbar=off as hidden If the xptracker is shown, but both counter and progress bar set to off, the xp tracker layer is not actually hidden but only has hidden children. This causes the overlay renderer to layout things around the invisible xptracker. Avoid this by checking the vars for the xptracker to see if it is hidden or not. --- .../runelite/client/ui/overlay/WidgetOverlay.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java index 9435086d7c..6cdd78248c 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java @@ -204,6 +204,20 @@ public class WidgetOverlay extends Overlay this.overlayManager = overlayManager; } + @Override + public Dimension render(Graphics2D graphics) + { + // The xptracker component layer isn't hidden if the counter and process bar are both configured "Off", + // it just has its children hidden. + if (client.getVar(Varbits.EXPERIENCE_TRACKER_COUNTER) == 30 // Off + && client.getVar(Varbits.EXPERIENCE_TRACKER_PROGRESS_BAR) == 0) // Off + { + return null; + } + + return super.render(graphics); + } + /** * Get the overlay position of the xptracker based on the configured location in-game. *