summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stone <daniel@fooishbar.org>2012-05-30 16:31:56 +0100
committerKristian Høgsberg <krh@bitplanet.net>2012-05-31 15:45:02 -0400
commitb21046836faafc0a3743e64436fcb5b6b8c4838e (patch)
tree4e6af0b50e5fd0905bcd6a2a9ae98a1cbc61a2da
parent162f78af68184eb69e495e7800cad96d150c17dd (diff)
shell: Reset focus for all seats on activation
Rather than using a single hardcoded seat to activate new windows within a compositor, reset the focus for all seats. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
-rw-r--r--src/shell.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/shell.c b/src/shell.c
index bca7afc..fe7b982 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -2054,6 +2054,7 @@ map(struct desktop_shell *shell, struct weston_surface *surface,
struct shell_surface *shsurf;
enum shell_surface_type surface_type = SHELL_SURFACE_NONE;
struct weston_surface *parent;
+ struct weston_seat *seat;
int panel_height = 0;
shsurf = get_shell_surface(surface);
@@ -2152,9 +2153,10 @@ map(struct desktop_shell *shell, struct weston_surface *surface,
case SHELL_SURFACE_TOPLEVEL:
case SHELL_SURFACE_FULLSCREEN:
case SHELL_SURFACE_MAXIMIZED:
- if (!shell->locked)
- activate(shell, surface,
- (struct weston_seat *) compositor->seat);
+ if (!shell->locked) {
+ wl_list_for_each(seat, &compositor->seat_list, link)
+ activate(shell, surface, seat);
+ }
break;
default:
break;