From f7a937463991e193d52752302b5604d317455339 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Thu, 21 Mar 2019 07:09:55 -0600 Subject: [PATCH] ChatboxPanelManager: Be more resilient when scripts mismatch If RESET_CHATBOX_INPUT doesn't invoke runelite_callback resetChatboxInput because the script hash mismatches panels never get killed, so they a) break jagex inputs, and b) can be lost and not get unregistered, so they will record passwords on the login screen --- .../client/game/chatbox/ChatboxPanelManager.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java index 35e42a617e..ff23bb2cda 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java @@ -93,6 +93,10 @@ public class ChatboxPanelManager 0, 1 ); + if (currentInput != null) + { + killCurrentPanel(); + } } private void unsafeOpenInput(ChatboxInput input) @@ -113,6 +117,11 @@ public class ChatboxPanelManager mouseManager.registerMouseWheelListener((MouseWheelListener) input); } + if (currentInput != null) + { + killCurrentPanel(); + } + currentInput = input; client.setVar(VarClientInt.INPUT_TYPE, InputType.RUNELITE_CHATBOX_PANEL.getType()); client.getWidget(WidgetInfo.CHATBOX_TITLE).setHidden(true);