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

Bill Spitzak spitzak at gmail.com
Fri Feb 6 12:27:03 PST 2015


Why did you move the code out of the first if statement and into a 
duplicate if statement? If this needs to be done later, could the whole 
if/else statement be moved down (ie move those idle_inhibit/release 
calls down to the same point).

On 02/06/2015 09:06 AM, Giulio Camuffo wrote:
> 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
>


More information about the wayland-devel mailing list