From 34243f727c49f5ccd27095016bb56804e5edf29c Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 20 Jul 2019 21:52:33 -0400 Subject: [PATCH] tooltip overlay: move tooltip clearing to a finally block Tooltips must always be cleared after each frame, and the overlay is responsible for this. This fixes tooltips erroneously stacking up in the event of an exception in the overlay --- .../client/ui/overlay/tooltip/TooltipOverlay.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/tooltip/TooltipOverlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/tooltip/TooltipOverlay.java index 9436da087f..da1600450e 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/tooltip/TooltipOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/tooltip/TooltipOverlay.java @@ -66,6 +66,19 @@ public class TooltipOverlay extends Overlay return null; } + try + { + return renderTooltips(graphics, tooltips); + } + finally + { + // Tooltips must always be cleared each frame + tooltipManager.clear(); + } + } + + private Dimension renderTooltips(Graphics2D graphics, List tooltips) + { final Rectangle clientCanvasBounds = new Rectangle(client.getRealDimensions()); final net.runelite.api.Point mouseCanvasPosition = client.getMouseCanvasPosition(); final Point mousePosition = new Point(mouseCanvasPosition.getX(), mouseCanvasPosition.getY() + OFFSET); @@ -113,7 +126,6 @@ public class TooltipOverlay extends Overlay newBounds.width = Math.max(newBounds.width, dimension.width); } - tooltipManager.clear(); return newBounds.getSize(); } }