key remapping: add control remap

Co-authored-by: Adam <Adam@sigterm.info>
This commit is contained in:
Matthew Zegar
2020-10-31 12:06:33 -07:00
committed by Adam
parent 7ceb3c9e02
commit 43bf4d60eb
3 changed files with 33 additions and 0 deletions

View File

@@ -24,6 +24,7 @@
*/
package net.runelite.client.plugins.keyremapping;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import net.runelite.client.config.Config;
import net.runelite.client.config.ConfigGroup;
@@ -286,4 +287,15 @@ public interface KeyRemappingConfig extends Config
{
return new ModifierlessKeybind(KeyEvent.VK_SPACE, 0);
}
@ConfigItem(
position = 21,
keyName = "control",
name = "Control",
description = "The key which will replace {Control}."
)
default ModifierlessKeybind control()
{
return new ModifierlessKeybind(KeyEvent.VK_UNDEFINED, InputEvent.CTRL_DOWN_MASK);
}
}

View File

@@ -162,6 +162,11 @@ class KeyRemappingListener implements KeyListener
mappedKeyCode = KeyEvent.VK_SPACE;
}
if (config.control().matches(e))
{
mappedKeyCode = KeyEvent.VK_CONTROL;
}
if (mappedKeyCode != KeyEvent.VK_UNDEFINED && mappedKeyCode != e.getKeyCode())
{
final char keyChar = e.getKeyChar();

View File

@@ -27,6 +27,7 @@ package net.runelite.client.plugins.keyremapping;
import com.google.inject.Guice;
import com.google.inject.testing.fieldbinder.Bind;
import com.google.inject.testing.fieldbinder.BoundFieldModule;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.inject.Inject;
import net.runelite.api.Client;
@@ -63,6 +64,7 @@ public class KeyRemappingListenerTest
public void setUp()
{
Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this);
when(keyRemappingConfig.control()).thenReturn(new ModifierlessKeybind(KeyEvent.VK_UNDEFINED, InputEvent.CTRL_DOWN_MASK));
}
@Test
@@ -123,4 +125,18 @@ public class KeyRemappingListenerTest
verify(event).setKeyCode(KeyEvent.VK_SPACE);
}
@Test
public void testControlRemap()
{
when(keyRemappingConfig.control()).thenReturn(new ModifierlessKeybind(KeyEvent.VK_NUMPAD1, 0));
when(keyRemappingPlugin.chatboxFocused()).thenReturn(true);
KeyEvent event = mock(KeyEvent.class);
when(event.getExtendedKeyCode()).thenReturn(KeyEvent.VK_NUMPAD1); // for keybind matches()
keyRemappingListener.keyPressed(event);
verify(event).setKeyCode(KeyEvent.VK_CONTROL);
}
}