[PATCH weston 18/31] shell: Reset focus for all seats on activation

Daniel Stone daniel at fooishbar.org
Wed May 30 08:31:56 PDT 2012


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 at fooishbar.org>
---
 src/shell.c |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/shell.c b/src/shell.c
index 887ce45..96fef1c 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -2053,6 +2053,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);
@@ -2151,9 +2152,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;
-- 
1.7.10



More information about the wayland-devel mailing list