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 <ofourdan@redhat.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=768017
diff --git a/libweston/input.c b/libweston/input.c
index 9697b4a..471c65e 100644
--- a/libweston/input.c
+++ b/libweston/input.c
@@ -2014,9 +2014,8 @@
 				      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;
 	}