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.
dev
Giulio Camuffo 10 years ago committed by Pekka Paalanen
parent c557ff7ea3
commit ad7305ad74
  1. 7
      xwayland/window-manager.c

@ -1214,8 +1214,8 @@ weston_wm_pick_seat_for_window(struct weston_wm_window *window)
seat = NULL; seat = NULL;
wl_list_for_each(s, &wm->server->compositor->seat_list, link) { wl_list_for_each(s, &wm->server->compositor->seat_list, link) {
if (s->pointer != NULL && if (s->pointer != NULL && s->pointer->focus &&
s->pointer->focus == window->view && s->pointer->focus->surface == window->surface &&
s->pointer->button_count > 0 && s->pointer->button_count > 0 &&
(seat == NULL || (seat == NULL ||
s->pointer->grab_serial - s->pointer->grab_serial -
@ -1248,7 +1248,8 @@ weston_wm_window_handle_moveresize(struct weston_wm_window *window,
&wm->server->compositor->shell_interface; &wm->server->compositor->shell_interface;
if (seat == NULL || seat->pointer->button_count != 1 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; return;
detail = client_message->data.data32[2]; detail = client_message->data.data32[2];

Loading…
Cancel
Save