input: store the grab serial of the keyboard

The serial can be checked against the one passed to wl_shell.set_popup
or equivalent.
Reviewed-by: Daniel Stone <daniels@collabora.com>
dev
Giulio Camuffo 10 years ago committed by Bryce Harrington
parent 023b265b44
commit b6ddf6c229
  1. 9
      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) { if (state == WL_KEYBOARD_KEY_STATE_PRESSED) {
weston_compositor_idle_inhibit(compositor); weston_compositor_idle_inhibit(compositor);
keyboard->grab_key = key;
keyboard->grab_time = time;
} else { } else {
weston_compositor_idle_release(compositor); weston_compositor_idle_release(compositor);
} }
@ -1361,6 +1359,13 @@ notify_key(struct weston_seat *seat, uint32_t time, uint32_t key,
key, key,
state); 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 WL_EXPORT void

Loading…
Cancel
Save