[PATCH weston v2] shell: Don't send extra configure events on click
Bryce Harrington
bryce at osg.samsung.com
Thu Feb 4 02:46:52 UTC 2016
On Thu, Dec 10, 2015 at 01:08:01PM -0600, Derek Foreman wrote:
> The click_to_activate handler fires on every mouse click for a surface
> so let's be a little quicker to early return if you're clicking on the
> surface that already has activation.
>
> This prevents (among other side effects) the sending of two xdg_configure
> events for every mouse click.
>
> This should also make having two seats with keyboards behave in the same
> way as a single seat. Previously the second seat could have a keyboard
> focus on the surface and prevent some of the extra processing (including
> the extra configure events) from taking place.
>
> Signed-off-by: Derek Foreman <derekf at osg.samsung.com>
> ---
>
> Difference from v1: only shortcut the click handler, don't change
> the activate() function that's called on other binds (like alt-tab)
>
>
> desktop-shell/shell.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
> index 780902d..c8c441f 100644
> --- a/desktop-shell/shell.c
> +++ b/desktop-shell/shell.c
> @@ -5101,6 +5101,7 @@ activate_binding(struct weston_seat *seat,
> struct desktop_shell *shell,
> struct weston_view *focus_view)
> {
> + struct focus_state *state;
> struct weston_surface *focus;
> struct weston_surface *main_surface;
>
> @@ -5113,6 +5114,13 @@ activate_binding(struct weston_seat *seat,
> if (get_shell_surface_type(main_surface) == SHELL_SURFACE_NONE)
> return;
>
> + state = ensure_focus_state(shell, seat);
> + if (state == NULL)
> + return;
> +
> + if (state->keyboard_focus == focus)
> + return;
> +
> activate(shell, focus, seat, true);
> }
Reviewed-by: Bryce Harrington <bryce at osg.samsung.com>
Ok for 1.11.
More information about the wayland-devel
mailing list