diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index 0e9464eed7..48acb6d234 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -109,6 +109,8 @@ public class WidgetID public static final int DIARY_QUEST_GROUP_ID = 275; public static final int THEATRE_OF_BLOOD_GROUP_ID = 23; public static final int WORLD_SWITCHER_GROUP_ID = 69; + public static final int DIALOG_OPTION_GROUP_ID = 219; + public static final int DIALOG_PLAYER_GROUP_ID = 217; static class WorldMap { diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java index c5bed947b5..89b6d6c0be 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java @@ -274,15 +274,20 @@ public enum WidgetInfo COMBAT_SPELL_ICON(WidgetID.COMBAT_GROUP_ID, WidgetID.Combat.SPELL_ICON), COMBAT_SPELL_TEXT(WidgetID.COMBAT_GROUP_ID, WidgetID.Combat.SPELL_TEXT), + DIALOG_OPTION(WidgetID.DIALOG_OPTION_GROUP_ID, 0), + DIALOG_SPRITE(WidgetID.DIALOG_SPRITE_GROUP_ID, 0), DIALOG_SPRITE_SPRITE(WidgetID.DIALOG_SPRITE_GROUP_ID, WidgetID.DialogSprite.SPRITE), DIALOG_SPRITE_TEXT(WidgetID.DIALOG_SPRITE_GROUP_ID, WidgetID.DialogSprite.TEXT), + DIALOG_NPC(WidgetID.DIALOG_NPC_GROUP_ID, 0), DIALOG_NPC_NAME(WidgetID.DIALOG_NPC_GROUP_ID, WidgetID.DialogNPC.NAME), DIALOG_NPC_TEXT(WidgetID.DIALOG_NPC_GROUP_ID, WidgetID.DialogNPC.TEXT), DIALOG_NPC_HEAD_MODEL(WidgetID.DIALOG_NPC_GROUP_ID, WidgetID.DialogNPC.HEAD_MODEL), DIALOG_NPC_CONTINUE(WidgetID.DIALOG_NPC_GROUP_ID, WidgetID.DialogNPC.CONTINUE), + DIALOG_PLAYER(WidgetID.DIALOG_PLAYER_GROUP_ID, 0), + PRIVATE_CHAT_MESSAGE(WidgetID.PRIVATE_CHAT, 0), SLAYER_REWARDS_TOPBAR(WidgetID.SLAYER_REWARDS_GROUP_ID, WidgetID.SlayerRewards.TOP_BAR), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wasdcamera/WASDCameraPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wasdcamera/WASDCameraPlugin.java index d4d9bd39d4..29a2983062 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wasdcamera/WASDCameraPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wasdcamera/WASDCameraPlugin.java @@ -105,7 +105,21 @@ public class WASDCameraPlugin extends Plugin boolean chatboxFocused() { Widget chatboxParent = client.getWidget(WidgetInfo.CHATBOX_PARENT); - return chatboxParent != null && chatboxParent.getOnKeyListener() != null; + if (chatboxParent == null || chatboxParent.getOnKeyListener() == null) + { + return false; + } + + // chat dialogs use the same key listener as chat + if (client.getWidget(WidgetInfo.DIALOG_NPC) != null + || client.getWidget(WidgetInfo.DIALOG_SPRITE) != null + || client.getWidget(WidgetInfo.DIALOG_OPTION) != null + || client.getWidget(WidgetInfo.DIALOG_PLAYER) != null) + { + return false; + } + + return true; } @Subscribe