< prev index next >
src/java.desktop/share/classes/java/awt/Container.java
Print this page
@@ -4418,10 +4418,22 @@
*/
private static final int LWD_MOUSE_DRAGGED_OVER = 1500;
private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.LightweightDispatcher");
+ private static final int BUTTONS_DOWN_MASK;
+
+ static {
+ int[] buttonsDownMask = AWTAccessor.getInputEventAccessor().
+ getButtonDownMasks();
+ int mask = 0;
+ for (int buttonDownMask : buttonsDownMask) {
+ mask |= buttonDownMask;
+ }
+ BUTTONS_DOWN_MASK = mask;
+ }
+
LightweightDispatcher(Container nativeContainer) {
this.nativeContainer = nativeContainer;
mouseEventTarget = new WeakReference<>(null);
targetLastEntered = new WeakReference<>(null);
targetLastEnteredDT = new WeakReference<>(null);
@@ -4486,29 +4498,16 @@
* wasAMouseButtonDownBeforeThisEvent().
*/
private boolean isMouseGrab(MouseEvent e) {
int modifiers = e.getModifiersEx();
- if(e.getID() == MouseEvent.MOUSE_PRESSED
- || e.getID() == MouseEvent.MOUSE_RELEASED)
- {
- switch (e.getButton()) {
- case MouseEvent.BUTTON1:
- modifiers ^= InputEvent.BUTTON1_DOWN_MASK;
- break;
- case MouseEvent.BUTTON2:
- modifiers ^= InputEvent.BUTTON2_DOWN_MASK;
- break;
- case MouseEvent.BUTTON3:
- modifiers ^= InputEvent.BUTTON3_DOWN_MASK;
- break;
- }
+ if (e.getID() == MouseEvent.MOUSE_PRESSED
+ || e.getID() == MouseEvent.MOUSE_RELEASED) {
+ modifiers ^= InputEvent.getMaskForButton(e.getButton());
}
/* modifiers now as just before event */
- return ((modifiers & (InputEvent.BUTTON1_DOWN_MASK
- | InputEvent.BUTTON2_DOWN_MASK
- | InputEvent.BUTTON3_DOWN_MASK)) != 0);
+ return ((modifiers & BUTTONS_DOWN_MASK) != 0);
}
/**
* This method attempts to distribute a mouse event to a lightweight
* component. It tries to avoid doing any unnecessary probes down
< prev index next >