From df84dbe3829af4647103e7a2716ae003582842f5 Mon Sep 17 00:00:00 2001 From: Olivier Fourdan Date: Thu, 30 Jun 2016 16:01:56 +0200 Subject: [PATCH] input: Update keyboard serial on press and release Other compositors such as mutter update the keyboard serial for both key press and key release, unlike weston which updates it only on key press. When dealing with popup windows which require a match in serials, if the event that caused the popup to be shown is a key release, then the popup would be dismissed. This occurs when navigating gtk+ sub-menus using the keyboard. Signed-off-by: Olivier Fourdan Reviewed-by: Daniel Stone Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=768017 --- libweston/input.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libweston/input.c b/libweston/input.c index 9697b4a6..471c65ec 100644 --- a/libweston/input.c +++ b/libweston/input.c @@ -2014,9 +2014,8 @@ notify_key(struct weston_seat *seat, uint32_t time, uint32_t key, state); } + keyboard->grab_serial = wl_display_get_serial(compositor->wl_display); 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; }