diff options
author | Giulio Camuffo <giuliocamuffo@gmail.com> | 2014-10-04 13:58:33 +0300 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2014-11-18 15:00:27 +0200 |
commit | ad7305ad74226c154243f33b59fd441ed2743a2a (patch) | |
tree | a0072a2c6df9f91cf8c5315d1dcc0377a992ec49 /xwayland | |
parent | c557ff7ea3ccd8628febe6e6ab8bd5b3ed3c1bbe (diff) | |
download | weston-ad7305ad74226c154243f33b59fd441ed2743a2a.tar.gz weston-ad7305ad74226c154243f33b59fd441ed2743a2a.tar.bz2 weston-ad7305ad74226c154243f33b59fd441ed2743a2a.zip |
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')
-rw-r--r-- | xwayland/window-manager.c | 7 |
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]; |