Merge branch 'pr/1' into upstream
This commit is contained in:
@@ -430,4 +430,16 @@ public interface RuneLiteConfig extends Config
|
|||||||
{
|
{
|
||||||
return new Keybind(KeyEvent.VK_F12, InputEvent.CTRL_DOWN_MASK);
|
return new Keybind(KeyEvent.VK_F12, InputEvent.CTRL_DOWN_MASK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "blockExtraMouseButtons",
|
||||||
|
name = "Block Extra Mouse Buttons",
|
||||||
|
description = "Blocks extra mouse buttons (4 and above)",
|
||||||
|
position = 34,
|
||||||
|
titleSection = "keybindsTitle"
|
||||||
|
)
|
||||||
|
default boolean blockExtraMouseButtons()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,14 +28,21 @@ import java.awt.event.MouseEvent;
|
|||||||
import java.awt.event.MouseWheelEvent;
|
import java.awt.event.MouseWheelEvent;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
import net.runelite.client.config.RuneLiteConfig;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class MouseManager
|
public class MouseManager
|
||||||
{
|
{
|
||||||
|
// Button numbers greater than BUTTON3 have no constant identifier
|
||||||
|
private static final int MOUSE_BUTTON_4 = 4;
|
||||||
|
|
||||||
private final List<MouseListener> mouseListeners = new CopyOnWriteArrayList<>();
|
private final List<MouseListener> mouseListeners = new CopyOnWriteArrayList<>();
|
||||||
private final List<MouseWheelListener> mouseWheelListeners = new CopyOnWriteArrayList<>();
|
private final List<MouseWheelListener> mouseWheelListeners = new CopyOnWriteArrayList<>();
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private RuneLiteConfig runeLiteConfig;
|
||||||
|
|
||||||
public void registerMouseListener(MouseListener mouseListener)
|
public void registerMouseListener(MouseListener mouseListener)
|
||||||
{
|
{
|
||||||
@@ -75,6 +82,7 @@ public class MouseManager
|
|||||||
|
|
||||||
public MouseEvent processMousePressed(MouseEvent mouseEvent)
|
public MouseEvent processMousePressed(MouseEvent mouseEvent)
|
||||||
{
|
{
|
||||||
|
checkExtraMouseButtons(mouseEvent);
|
||||||
for (MouseListener mouseListener : mouseListeners)
|
for (MouseListener mouseListener : mouseListeners)
|
||||||
{
|
{
|
||||||
mouseEvent = mouseListener.mousePressed(mouseEvent);
|
mouseEvent = mouseListener.mousePressed(mouseEvent);
|
||||||
@@ -84,6 +92,7 @@ public class MouseManager
|
|||||||
|
|
||||||
public MouseEvent processMouseReleased(MouseEvent mouseEvent)
|
public MouseEvent processMouseReleased(MouseEvent mouseEvent)
|
||||||
{
|
{
|
||||||
|
checkExtraMouseButtons(mouseEvent);
|
||||||
for (MouseListener mouseListener : mouseListeners)
|
for (MouseListener mouseListener : mouseListeners)
|
||||||
{
|
{
|
||||||
mouseEvent = mouseListener.mouseReleased(mouseEvent);
|
mouseEvent = mouseListener.mouseReleased(mouseEvent);
|
||||||
@@ -93,12 +102,24 @@ public class MouseManager
|
|||||||
|
|
||||||
public MouseEvent processMouseClicked(MouseEvent mouseEvent)
|
public MouseEvent processMouseClicked(MouseEvent mouseEvent)
|
||||||
{
|
{
|
||||||
|
checkExtraMouseButtons(mouseEvent);
|
||||||
for (MouseListener mouseListener : mouseListeners)
|
for (MouseListener mouseListener : mouseListeners)
|
||||||
{
|
{
|
||||||
mouseEvent = mouseListener.mouseClicked(mouseEvent);
|
mouseEvent = mouseListener.mouseClicked(mouseEvent);
|
||||||
}
|
}
|
||||||
return mouseEvent;
|
return mouseEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void checkExtraMouseButtons(MouseEvent mouseEvent)
|
||||||
|
{
|
||||||
|
// Prevent extra mouse buttons from being passed into the client,
|
||||||
|
// as it treats them all as left click
|
||||||
|
int button = mouseEvent.getButton();
|
||||||
|
if (button >= MOUSE_BUTTON_4 && runeLiteConfig.blockExtraMouseButtons())
|
||||||
|
{
|
||||||
|
mouseEvent.consume();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public MouseEvent processMouseEntered(MouseEvent mouseEvent)
|
public MouseEvent processMouseEntered(MouseEvent mouseEvent)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user