From 15e0f1e5f22a1543b08253edaf15779128cb688d Mon Sep 17 00:00:00 2001 From: loldudester Date: Sun, 26 Jan 2020 22:15:25 +0000 Subject: [PATCH] client: Add configurable hotkey to toggle plugin panel --- .../client/config/RuneLiteConfig.java | 11 +++++++ .../java/net/runelite/client/ui/ClientUI.java | 31 +++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java b/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java index f90ecf43b1..81ccc10c7c 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java @@ -312,4 +312,15 @@ public interface RuneLiteConfig extends Config { return new Keybind(KeyEvent.VK_F11, InputEvent.CTRL_DOWN_MASK); } + + @ConfigItem( + keyName = "panelToggleKey", + name = "Plugin Panel Toggle Key", + description = "The key that will toggle the current or last opened plugin panel (accepts modifiers)", + position = 45 + ) + default Keybind panelToggleKey() + { + return new Keybind(KeyEvent.VK_F12, InputEvent.CTRL_DOWN_MASK); + } } \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java index c47c0f892b..55fc4940b8 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java @@ -353,6 +353,17 @@ public class ClientUI keyManager.registerKeyListener(sidebarListener); + final HotkeyListener pluginPanelListener = new HotkeyListener(config::panelToggleKey) + { + @Override + public void hotkeyPressed() + { + togglePluginPanel(); + } + }; + + keyManager.registerKeyListener(pluginPanelListener); + // Add mouse listener final MouseListener mouseListener = new MouseAdapter() { @@ -738,6 +749,26 @@ public class ClientUI } } + private void togglePluginPanel() + { + // Toggle plugin panel open + final boolean pluginPanelOpen = pluginPanel != null; + + if (currentButton != null) + { + currentButton.setSelected(!pluginPanelOpen); + } + + if (pluginPanelOpen) + { + contract(); + } + else + { + expand(currentNavButton); + } + } + private void expand(@Nullable NavigationButton button) { if (button == null)