diff options
Diffstat (limited to 'src/java.desktop/unix/classes/sun/awt/wl/WLInputState.java')
-rw-r--r-- | src/java.desktop/unix/classes/sun/awt/wl/WLInputState.java | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/java.desktop/unix/classes/sun/awt/wl/WLInputState.java b/src/java.desktop/unix/classes/sun/awt/wl/WLInputState.java index b9c65e5eb23..d5fb773e6c6 100644 --- a/src/java.desktop/unix/classes/sun/awt/wl/WLInputState.java +++ b/src/java.desktop/unix/classes/sun/awt/wl/WLInputState.java @@ -38,6 +38,7 @@ package sun.awt.wl; * @param pointerButtonPressedEvent null or the latest PointerButtonEvent such that getIsButtonPressed() == true * @param modifiers a bit set of modifiers reflecting currently pressed keys (@see WLInputState.getNewModifiers()) * @param surfaceForKeyboardInput represents 'struct wl_surface*' that keyboards events should go to + * @param lockingKeyState a bit set of locking modifiers currently active */ record WLInputState(WLPointerEvent eventWithSurface, WLPointerEvent eventWithSerial, @@ -46,7 +47,8 @@ record WLInputState(WLPointerEvent eventWithSurface, PointerButtonEvent pointerButtonPressedEvent, int modifiers, long surfaceForKeyboardInput, - boolean isPointerOverSurface) { + boolean isPointerOverSurface, + int lockingKeyState) { /** * Groups together information about a mouse pointer button event. * @param surface 'struct wl_surface*' the button was pressed over @@ -60,7 +62,7 @@ record WLInputState(WLPointerEvent eventWithSurface, static WLInputState initialState() { return new WLInputState(null, null, null, null, - null, 0, 0, false); + null, 0, 0, false, 0); } /** @@ -92,7 +94,8 @@ record WLInputState(WLPointerEvent eventWithSurface, newPointerButtonEvent, newModifiers, surfaceForKeyboardInput, - newPointerOverSurface); + newPointerOverSurface, + lockingKeyState); } public WLInputState updatedFromKeyboardEnterEvent(long serial, long surfacePtr) { @@ -105,10 +108,11 @@ record WLInputState(WLPointerEvent eventWithSurface, pointerButtonPressedEvent, modifiers, surfacePtr, - isPointerOverSurface); + isPointerOverSurface, + lockingKeyState); } - public WLInputState updatedFromKeyboardModifiersEvent(long serial, int keyboardModifiers) { + public WLInputState updatedFromKeyboardModifiersEvent(long serial, int keyboardModifiers, int newLockingKeyState) { // "The compositor must send the wl_keyboard.modifiers event after this event". final int oldPointerModifiers = modifiers & WLPointerEvent.PointerButtonCodes.combinedMask(); final int newModifiers = oldPointerModifiers | keyboardModifiers; @@ -120,7 +124,8 @@ record WLInputState(WLPointerEvent eventWithSurface, pointerButtonPressedEvent, newModifiers, surfaceForKeyboardInput, - isPointerOverSurface); + isPointerOverSurface, + newLockingKeyState); } public WLInputState updatedFromKeyboardLeaveEvent(long serial, long surfacePtr) { @@ -135,7 +140,8 @@ record WLInputState(WLPointerEvent eventWithSurface, pointerButtonPressedEvent, newModifiers, 0, - isPointerOverSurface); + isPointerOverSurface, + lockingKeyState); } public WLInputState resetPointerState() { @@ -147,7 +153,8 @@ record WLInputState(WLPointerEvent eventWithSurface, pointerButtonPressedEvent, 0, surfaceForKeyboardInput, - false); + false, + lockingKeyState); } private PointerButtonEvent getNewPointerButtonEvent(WLPointerEvent pointerEvent, |