summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stone <daniel@fooishbar.org>2012-05-30 16:31:53 +0100
committerKristian Høgsberg <krh@bitplanet.net>2012-05-31 15:44:03 -0400
commit4dab5dba3f323ffa83ae25a64b201fba241286e1 (patch)
tree0b69f32796a6f5209d4508cf8fef8feda65b53da
parentc9785eacca7fe48119547bc7ed476754d8bcf610 (diff)
Use compositor->seat_list instead of a singular seat
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
-rw-r--r--src/compositor.c23
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