From 8806bba2743602425e826a0c2188e8a0530205cf Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 4 Jun 2019 08:52:05 -0400 Subject: [PATCH] inventory grid: add delay before activating overlay --- runelite-api/src/main/java/net/runelite/api/Client.java | 7 +++++++ .../client/plugins/inventorygrid/InventoryGridOverlay.java | 4 +++- .../src/main/java/net/runelite/rs/api/RSClient.java | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/runelite-api/src/main/java/net/runelite/api/Client.java b/runelite-api/src/main/java/net/runelite/api/Client.java index f8a4f1f429..cfc24df818 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -1360,6 +1360,13 @@ public interface Client extends GameEngine */ boolean isInInstancedRegion(); + /** + * Get the number of client ticks an item has been pressed + * + * @return the number of client ticks an item has been pressed + */ + int getItemPressedDuration(); + /** * Sets whether the client is hiding entities. *

diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/inventorygrid/InventoryGridOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/inventorygrid/InventoryGridOverlay.java index 60db349831..f628f007c6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/inventorygrid/InventoryGridOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/inventorygrid/InventoryGridOverlay.java @@ -45,6 +45,7 @@ import net.runelite.client.ui.overlay.OverlayPosition; class InventoryGridOverlay extends Overlay { private static final int INVENTORY_SIZE = 28; + private static final int DRAG_DELAY = 5; private static final Color HIGHLIGHT = new Color(0, 255, 0, 45); private static final Color GRID = new Color(255, 255, 255, 45); @@ -70,7 +71,8 @@ class InventoryGridOverlay extends Overlay final Widget if1DraggingWidget = client.getIf1DraggedWidget(); final Widget inventoryWidget = client.getWidget(WidgetInfo.INVENTORY); - if (if1DraggingWidget == null || if1DraggingWidget != inventoryWidget) + if (if1DraggingWidget == null || if1DraggingWidget != inventoryWidget + || client.getItemPressedDuration() < DRAG_DELAY) { return null; } diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java index 66df34bc97..96b3333df4 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java @@ -777,6 +777,7 @@ public interface RSClient extends RSGameEngine, Client boolean isInInstancedRegion(); @Import("itemPressedDuration") + @Override int getItemPressedDuration(); @Import("itemPressedDuration")