[PATCH weston v2] shell: Don't send extra configure events on click

Bryce Harrington bryce at osg.samsung.com
Wed Feb 17 05:56:17 UTC 2016


On Wed, Feb 03, 2016 at 06:46:52PM -0800, Bryce Harrington wrote:
> 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.

Pushed for 1.11:

To ssh://git.freedesktop.org/git/wayland/weston
   f6c854e..bbde643  master -> master


More information about the wayland-devel mailing list