[PATCH weston] xwm: find a seat for all the surface's views

Pekka Paalanen ppaalanen at gmail.com
Wed Nov 12 03:25:49 PST 2014


On Sat,  4 Oct 2014 13:58:33 +0300
Giulio Camuffo <giuliocamuffo at gmail.com> wrote:

> This allows to move or resize a xwayland client by acting on all
> its views.

Hmm, is this a good thing? What use cases you had in mind?

Shouldn't there be a difference between move/resizeable views and other
views? Like if you have an additional view in a pager or the alt+tab
list, that shouldn't be resizable and it might not want to be
interactive (input-capable) at all.

What's the idea here? Not just for Xwayland windows but all of them.

I think we have no distinction between interactive and non-interactive
views currently, so we just handle it through grabs, am I right?

So, this patch is simply to make the Xwayland windows behave the same
as native windows?


Thanks,
pq


> ---
>  xwayland/window-manager.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/xwayland/window-manager.c b/xwayland/window-manager.c
> index 4e91f9d..a283a3c 100644
> --- a/xwayland/window-manager.c
> +++ b/xwayland/window-manager.c
> @@ -1214,8 +1214,8 @@ weston_wm_pick_seat_for_window(struct weston_wm_window *window)
>  
>  	seat = NULL;
>  	wl_list_for_each(s, &wm->server->compositor->seat_list, link) {
> -		if (s->pointer != NULL &&
> -		    s->pointer->focus == window->view &&
> +		if (s->pointer != NULL && s->pointer->focus &&
> +		    s->pointer->focus->surface == window->surface &&
>  		    s->pointer->button_count > 0 &&
>  		    (seat == NULL ||
>  		     s->pointer->grab_serial -
> @@ -1248,7 +1248,8 @@ weston_wm_window_handle_moveresize(struct weston_wm_window *window,
>  		&wm->server->compositor->shell_interface;
>  
>  	if (seat == NULL || seat->pointer->button_count != 1
> -	    || !window->view || seat->pointer->focus != window->view)
> +	    || !seat->pointer->focus
> +	    || seat->pointer->focus->surface != window->surface)
>  		return;
>  
>  	detail = client_message->data.data32[2];



More information about the wayland-devel mailing list