tablet-shell: Use seat_list rather than primary seat
authorDaniel Stone <daniel@fooishbar.org>
Wed, 30 May 2012 15:31:55 +0000 (16:31 +0100)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 31 May 2012 19:44:14 +0000 (15:44 -0400)
Activate surfaces for all seats when showing the grid, not just the
primary seat.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
src/tablet-shell.c

index fa45b25..90642ba 100644 (file)
@@ -240,9 +240,10 @@ minimize_zoom_done(struct weston_zoom *zoom, void *data)
 {
        struct tablet_shell *shell = data;
        struct weston_compositor *compositor = shell->compositor;
-       struct weston_seat *seat = (struct weston_seat *) compositor->seat;
+       struct weston_seat *seat;
 
-       weston_surface_activate(shell->home_surface, seat);
+       wl_list_for_each(seat, &compositor->seat_list, link)
+               weston_surface_activate(shell->home_surface, seat);
 }
 
 static void
@@ -250,7 +251,7 @@ tablet_shell_switch_to(struct tablet_shell *shell,
                             struct weston_surface *surface)
 {
        struct weston_compositor *compositor = shell->compositor;
-       struct weston_seat *seat = (struct weston_seat *) compositor->seat;
+       struct weston_seat *seat;
        struct weston_surface *current;
 
        if (shell->state == STATE_SWITCHER) {
@@ -268,7 +269,8 @@ tablet_shell_switch_to(struct tablet_shell *shell,
                }
        } else {
                fprintf(stderr, "switch to %p\n", surface);
-               weston_surface_activate(surface, seat);
+               wl_list_for_each(seat, &compositor->seat_list, link)
+                       weston_surface_activate(surface, seat);
                tablet_shell_set_state(shell, STATE_TASK);
                weston_zoom_run(surface, 0.3, 1.0, NULL, NULL);
        }
@@ -423,11 +425,8 @@ tablet_shell_unlock(struct wl_listener *listener, void *data)
 }
 
 static void
-go_home(struct tablet_shell *shell)
+go_home(struct tablet_shell *shell, struct weston_seat *seat)
 {
-       struct weston_seat *seat =
-               (struct weston_seat *) shell->compositor->seat;
-
        if (shell->state == STATE_SWITCHER)
                tablet_shell_send_hide_switcher(&shell->resource);
 
@@ -482,7 +481,7 @@ home_key_binding(struct wl_seat *seat, uint32_t time,
                        toggle_switcher(shell);
                        break;
                default:
-                       go_home(shell);
+                       go_home(shell, (struct weston_seat *) seat);
                        break;
                }
        }