diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatOverlay.java index 34d3097e15..646116cc75 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatOverlay.java @@ -27,10 +27,9 @@ package net.runelite.client.plugins.itemstats; import com.google.inject.Inject; import java.awt.Dimension; import java.awt.Graphics2D; -import java.awt.Point; import net.runelite.api.Client; -import net.runelite.api.queries.InventoryWidgetItemQuery; -import net.runelite.api.widgets.WidgetItem; +import net.runelite.api.MenuEntry; +import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.tooltip.Tooltip; import net.runelite.client.ui.overlay.tooltip.TooltipManager; @@ -62,25 +61,35 @@ public class ItemStatOverlay extends Overlay return null; } - WidgetItem[] inventory = queryRunner.runQuery(new InventoryWidgetItemQuery()); - Point mousePos = new Point(client.getMouseCanvasPosition().getX(), client.getMouseCanvasPosition().getY()); - for (WidgetItem item : inventory) + final MenuEntry[] menu = client.getMenuEntries(); + final int menuSize = menu.length; + + if (menuSize <= 0) { - if (item.getCanvasBounds().contains(mousePos)) - { - Effect change = statChanges.get(item.getId()); - if (change != null) - { - StringBuilder b = new StringBuilder(); - StatsChanges statsChanges = change.calculate(client); - for (StatChange c : statsChanges.getStatChanges()) - { - b.append(buildStatChangeString(c)); - } - tooltipManager.add(new Tooltip(b.toString())); - } - } + return null; } + + final MenuEntry entry = menu[menuSize - 1]; + + if (entry.getParam1() != WidgetInfo.INVENTORY.getId()) + { + return null; + } + + final Effect change = statChanges.get(entry.getIdentifier()); + if (change != null) + { + final StringBuilder b = new StringBuilder(); + final StatsChanges statsChanges = change.calculate(client); + + for (final StatChange c : statsChanges.getStatChanges()) + { + b.append(buildStatChangeString(c)); + } + + tooltipManager.add(new Tooltip(b.toString())); + } + return null; }