diff options
author | Daniel Stone <daniel@fooishbar.org> | 2012-05-30 16:31:53 +0100 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2012-05-31 15:44:03 -0400 |
commit | 4dab5dba3f323ffa83ae25a64b201fba241286e1 (patch) | |
tree | 0b69f32796a6f5209d4508cf8fef8feda65b53da | |
parent | c9785eacca7fe48119547bc7ed476754d8bcf610 (diff) |
Use compositor->seat_list instead of a singular seat
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
-rw-r--r-- | src/compositor.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/compositor.c b/src/compositor.c index 7d4069e..71dadf0 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -656,20 +656,22 @@ weston_compositor_repick(struct weston_compositor *compositor) static void weston_surface_unmap(struct weston_surface *surface) { - struct wl_seat *seat = &surface->compositor->seat->seat; + struct weston_seat *seat; weston_surface_damage_below(surface); surface->output = NULL; wl_list_remove(&surface->link); wl_list_remove(&surface->layer_link); - if (seat->keyboard->focus == &surface->surface) - wl_keyboard_set_focus(seat->keyboard, NULL); - if (seat->pointer->focus == &surface->surface) - wl_pointer_set_focus(seat->pointer, - NULL, - wl_fixed_from_int(0), - wl_fixed_from_int(0)); + wl_list_for_each(seat, &surface->compositor->seat_list, link) { + if (seat->seat.keyboard->focus == &surface->surface) + wl_keyboard_set_focus(seat->seat.keyboard, NULL); + if (seat->seat.pointer->focus == &surface->surface) + wl_pointer_set_focus(seat->seat.pointer, + NULL, + wl_fixed_from_int(0), + wl_fixed_from_int(0)); + } weston_compositor_schedule_repaint(surface->compositor); } @@ -2442,7 +2444,10 @@ weston_seat_update_drag_surface(struct wl_seat *seat, WL_EXPORT void weston_compositor_update_drag_surfaces(struct weston_compositor *compositor) { - weston_seat_update_drag_surface(&compositor->seat->seat, 0, 0); + struct weston_seat *seat; + + wl_list_for_each(seat, &compositor->seat_list, link) + weston_seat_update_drag_surface(&seat->seat, 0, 0); } static void |