On Thu, Jul 12, 2012 at 12:46:10AM +0300, Tiago Vignatti wrote:
> compositor->focus was just unset, and weston_compositor_repick() has no
> effect.

I've committed the patch and the call to repick doesn't do anything
anymore, but it used to take away pointer focus for all seats when
focus was 0.  That's broken now (try overlapping a wayland client with
WAYLAND_DEBUG=1 with another X window, move the cursor from the
wayland client into the overlapping X window and notice how it doesn't
get a wl_pointer.leave event).  It's probably more corrent and cleaner
to just call wl_pointer_set_focus with NULL, but that then break
re-entry into the compositor window.  I added a FIXME comment to your
patch.

> Signed-off-by: Tiago Vignatti <tiago.vigna...@intel.com>
> ---
>  src/compositor.c |    1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/src/compositor.c b/src/compositor.c
> index 5626517..95fcf2a 100644
> --- a/src/compositor.c
> +++ b/src/compositor.c
> @@ -1975,7 +1975,6 @@ notify_pointer_focus(struct wl_seat *seat, struct 
> weston_output *output,
>               weston_compositor_repick(compositor);
>       } else {
>               compositor->focus = 0;
> -             weston_compositor_repick(compositor);
>       }
>  }
>  
> -- 
> 1.7.9.5
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to