Merge pull request #10664 from loldudester/sidebar-hotkey

This commit is contained in:
Jordan
2020-05-12 19:53:00 -07:00
committed by GitHub
2 changed files with 56 additions and 5 deletions

View File

@@ -25,6 +25,8 @@
package net.runelite.client.config;
import java.awt.Dimension;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import net.runelite.api.Constants;
import net.runelite.client.Notifier;
import net.runelite.client.ui.ContainableFrame;
@@ -288,4 +290,26 @@ public interface RuneLiteConfig extends Config
{
return true;
}
@ConfigItem(
keyName = "sidebarToggleKey",
name = "Sidebar Toggle Key",
description = "The key that will toggle the sidebar (accepts modifiers)",
position = 44
)
default Keybind sidebarToggleKey()
{
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);
}
}

View File

@@ -39,8 +39,6 @@ import java.awt.LayoutManager;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
@@ -77,7 +75,6 @@ import net.runelite.client.RuneLiteProperties;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.config.ExpandResizeType;
import net.runelite.client.config.Keybind;
import net.runelite.client.config.RuneLiteConfig;
import net.runelite.client.config.WarningOnExit;
import net.runelite.client.eventbus.Subscribe;
@@ -374,8 +371,7 @@ public class ClientUI
frame.add(container);
// Add key listener
final HotkeyListener sidebarListener = new HotkeyListener(() ->
new Keybind(KeyEvent.VK_F11, InputEvent.CTRL_DOWN_MASK))
final HotkeyListener sidebarListener = new HotkeyListener(config::sidebarToggleKey)
{
@Override
public void hotkeyPressed()
@@ -387,6 +383,17 @@ public class ClientUI
sidebarListener.setEnabledOnLogin(true);
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()
{
@@ -840,6 +847,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)