diff options
author | Daniel Stone <daniel@fooishbar.org> | 2012-05-30 16:31:56 +0100 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2012-05-31 15:45:02 -0400 |
commit | b21046836faafc0a3743e64436fcb5b6b8c4838e (patch) | |
tree | 4e6af0b50e5fd0905bcd6a2a9ae98a1cbc61a2da | |
parent | 162f78af68184eb69e495e7800cad96d150c17dd (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.c | 8 |
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; |