diff --git a/runelite-client/src/main/java/net/runelite/client/input/KeyManager.java b/runelite-client/src/main/java/net/runelite/client/input/KeyManager.java index d8e5c81a11..f9e2c4f07d 100644 --- a/runelite-client/src/main/java/net/runelite/client/input/KeyManager.java +++ b/runelite-client/src/main/java/net/runelite/client/input/KeyManager.java @@ -49,25 +49,52 @@ public class KeyManager public void processKeyPressed(KeyEvent keyEvent) { + if (keyEvent.isConsumed()) + { + return; + } + for (KeyListener keyListener : keyListeners) { keyListener.keyPressed(keyEvent); + if (keyEvent.isConsumed()) + { + break; + } } } public void processKeyReleased(KeyEvent keyEvent) { + if (keyEvent.isConsumed()) + { + return; + } + for (KeyListener keyListener : keyListeners) { keyListener.keyReleased(keyEvent); + if (keyEvent.isConsumed()) + { + break; + } } } public void processKeyTyped(KeyEvent keyEvent) { + if (keyEvent.isConsumed()) + { + return; + } + for (KeyListener keyListener : keyListeners) { keyListener.keyTyped(keyEvent); + if (keyEvent.isConsumed()) + { + break; + } } } } diff --git a/runelite-client/src/main/java/net/runelite/client/input/MouseManager.java b/runelite-client/src/main/java/net/runelite/client/input/MouseManager.java index b88d43d3d6..d5b876c7d7 100644 --- a/runelite-client/src/main/java/net/runelite/client/input/MouseManager.java +++ b/runelite-client/src/main/java/net/runelite/client/input/MouseManager.java @@ -82,30 +82,57 @@ public class MouseManager public MouseEvent processMousePressed(MouseEvent mouseEvent) { + if (mouseEvent.isConsumed()) + { + return mouseEvent; + } + checkExtraMouseButtons(mouseEvent); for (MouseListener mouseListener : mouseListeners) { mouseEvent = mouseListener.mousePressed(mouseEvent); + if (mouseEvent.isConsumed()) + { + break; + } } return mouseEvent; } public MouseEvent processMouseReleased(MouseEvent mouseEvent) { + if (mouseEvent.isConsumed()) + { + return mouseEvent; + } + checkExtraMouseButtons(mouseEvent); for (MouseListener mouseListener : mouseListeners) { mouseEvent = mouseListener.mouseReleased(mouseEvent); + if (mouseEvent.isConsumed()) + { + break; + } } return mouseEvent; } public MouseEvent processMouseClicked(MouseEvent mouseEvent) { + if (mouseEvent.isConsumed()) + { + return mouseEvent; + } + checkExtraMouseButtons(mouseEvent); for (MouseListener mouseListener : mouseListeners) { mouseEvent = mouseListener.mouseClicked(mouseEvent); + if (mouseEvent.isConsumed()) + { + break; + } } return mouseEvent; } @@ -123,45 +150,90 @@ public class MouseManager public MouseEvent processMouseEntered(MouseEvent mouseEvent) { + if (mouseEvent.isConsumed()) + { + return mouseEvent; + } + for (MouseListener mouseListener : mouseListeners) { mouseEvent = mouseListener.mouseEntered(mouseEvent); + if (mouseEvent.isConsumed()) + { + break; + } } return mouseEvent; } public MouseEvent processMouseExited(MouseEvent mouseEvent) { + if (mouseEvent.isConsumed()) + { + return mouseEvent; + } + for (MouseListener mouseListener : mouseListeners) { mouseEvent = mouseListener.mouseExited(mouseEvent); + if (mouseEvent.isConsumed()) + { + break; + } } return mouseEvent; } public MouseEvent processMouseDragged(MouseEvent mouseEvent) { + if (mouseEvent.isConsumed()) + { + return mouseEvent; + } + for (MouseListener mouseListener : mouseListeners) { mouseEvent = mouseListener.mouseDragged(mouseEvent); + if (mouseEvent.isConsumed()) + { + break; + } } return mouseEvent; } public MouseEvent processMouseMoved(MouseEvent mouseEvent) { + if (mouseEvent.isConsumed()) + { + return mouseEvent; + } + for (MouseListener mouseListener : mouseListeners) { mouseEvent = mouseListener.mouseMoved(mouseEvent); + if (mouseEvent.isConsumed()) + { + break; + } } return mouseEvent; } public MouseWheelEvent processMouseWheelMoved(MouseWheelEvent mouseWheelEvent) { + if (mouseWheelEvent.isConsumed()) + { + return mouseWheelEvent; + } + for (MouseWheelListener mouseWheelListener : mouseWheelListeners) { mouseWheelEvent = mouseWheelListener.mouseWheelMoved(mouseWheelEvent); + if (mouseWheelEvent.isConsumed()) + { + break; + } } return mouseWheelEvent; }