From d74fc180919b643f685e522da72a37cc10e27c0a Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Fri, 14 Sep 2018 16:52:31 -0700 Subject: [PATCH] clue scroll overlay: Show visible emote widget area The visible area of emote widgets will now be highlighted, regardless of whether the widget is partially outside the emote window. ![Highlighted emote widget resizes to show visible area within emote window](https://user-images.githubusercontent.com/2199511/45579707-777c7980-b879-11e8-90bf-1e34fc1cb790.gif) Fixes runelite/runelite#4163 --- .../cluescrolls/ClueScrollEmoteOverlay.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollEmoteOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollEmoteOverlay.java index b7ffe30fc6..f996aa6d76 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollEmoteOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollEmoteOverlay.java @@ -122,13 +122,21 @@ public class ClueScrollEmoteOverlay extends Overlay // Don't draw outside the emotes window net.runelite.api.Point windowLocation = window.getCanvasLocation(); - if (windowLocation.getY() > canvasLocation.getY() - || windowLocation.getY() + window.getHeight() < canvasLocation.getY() + widget.getHeight()) + if (windowLocation.getY() > canvasLocation.getY() + widget.getHeight() + || windowLocation.getY() + window.getHeight() < canvasLocation.getY()) { return; } - Area widgetArea = new Area(new Rectangle(canvasLocation.getX(), canvasLocation.getY(), widget.getWidth(), widget.getHeight())); + // Visible area of emote widget + Area widgetArea = new Area( + new Rectangle( + canvasLocation.getX(), + Math.max(canvasLocation.getY(), windowLocation.getY()), + widget.getWidth(), + Math.min( + Math.min(windowLocation.getY() + window.getHeight() - canvasLocation.getY(), widget.getHeight()), + Math.min(canvasLocation.getY() + widget.getHeight() - windowLocation.getY(), widget.getHeight())))); OverlayUtil.renderHoverableArea(graphics, widgetArea, client.getMouseCanvasPosition(), HIGHLIGHT_FILL_COLOR, HIGHLIGHT_BORDER_COLOR, HIGHLIGHT_HOVER_BORDER_COLOR);