[PATCH weston] input: store the grab serial of the keyboard

Giulio Camuffo giuliocamuffo at gmail.com
Fri Feb 6 09:06:54 PST 2015


The serial can be checked against the one passed to wl_shell.set_popup
or equivalent.
---
 src/input.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/input.c b/src/input.c
index fa4fc4e..a0a817f 100644
--- a/src/input.c
+++ b/src/input.c
@@ -1321,8 +1321,6 @@ notify_key(struct weston_seat *seat, uint32_t time, uint32_t key,
 
 	if (state == WL_KEYBOARD_KEY_STATE_PRESSED) {
 		weston_compositor_idle_inhibit(compositor);
-		keyboard->grab_key = key;
-		keyboard->grab_time = time;
 	} else {
 		weston_compositor_idle_release(compositor);
 	}
@@ -1361,6 +1359,13 @@ notify_key(struct weston_seat *seat, uint32_t time, uint32_t key,
 				      key,
 				      state);
 	}
+
+	if (state == WL_KEYBOARD_KEY_STATE_PRESSED) {
+		keyboard->grab_serial =
+			wl_display_get_serial(compositor->wl_display);
+		keyboard->grab_time = time;
+		keyboard->grab_key = key;
+	}
 }
 
 WL_EXPORT void
-- 
2.3.0



More information about the wayland-devel mailing list