summaryrefslogtreecommitdiff
path: root/xwayland/window-manager.c
diff options
context:
space:
mode:
authorGiulio Camuffo <giuliocamuffo@gmail.com>2014-10-04 13:58:33 +0300
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>2014-11-18 15:00:27 +0200
commitad7305ad74226c154243f33b59fd441ed2743a2a (patch)
treea0072a2c6df9f91cf8c5315d1dcc0377a992ec49 /xwayland/window-manager.c
parentc557ff7ea3ccd8628febe6e6ab8bd5b3ed3c1bbe (diff)
xwm: find a seat for all the surface's views
This allows to move or resize a xwayland client by acting on all its views.
Diffstat (limited to 'xwayland/window-manager.c')
-rw-r--r--xwayland/window-manager.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/xwayland/window-manager.c b/xwayland/window-manager.c
index 29023733..4977c243 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];