diff --git a/core/src/main/java/edu/umd/cs/piccolo/util/PPickPath.java b/core/src/main/java/edu/umd/cs/piccolo/util/PPickPath.java index 96bc91c..7aeaf7c 100644 --- a/core/src/main/java/edu/umd/cs/piccolo/util/PPickPath.java +++ b/core/src/main/java/edu/umd/cs/piccolo/util/PPickPath.java @@ -261,6 +261,9 @@ for (int j = 0; j < listeners.length; j++) { PInputEventListener listener = (PInputEventListener) listeners[j]; listener.processEvent(aEvent, type); + if (aEvent.isHandled()) { + return; + } } } } diff --git a/extras/src/main/java/edu/umd/cs/piccolox/pswing/PSwingEventHandler.java b/extras/src/main/java/edu/umd/cs/piccolox/pswing/PSwingEventHandler.java index 350774f..b14a0b4 100644 --- a/extras/src/main/java/edu/umd/cs/piccolox/pswing/PSwingEventHandler.java +++ b/extras/src/main/java/edu/umd/cs/piccolox/pswing/PSwingEventHandler.java @@ -251,7 +251,6 @@ PSwingMouseEvent e2 = PSwingMouseEvent.createMouseEvent(e_temp.getID(), e_temp, aEvent); dispatchEvent(comp, e2); - pSwingMouseEvent.consume(); } // Now we need to check if an exit or enter event needs to @@ -268,10 +267,6 @@ dispatchEvent(prevComponent, e2); prevComponent = null; - - if (pSwingMouseEvent.getID() == MouseEvent.MOUSE_EXITED) { - pSwingMouseEvent.consume(); - } } // This means mouseExited prevComponent and mouseEntered comp @@ -408,6 +403,9 @@ if (!recursing) { recursing = true; dispatchEvent(pSwingMouseEvent, aEvent); + if (pSwingMouseEvent.isConsumed()) { + aEvent.setHandled(true); + } recursing = false; } }