aboutsummaryrefslogtreecommitdiff
path: root/src/java.desktop/unix/classes/sun/awt/wl/WLInputState.java
diff options
context:
space:
mode:
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.java23
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,