[PATCH weston 3/3] shell: Fix crash when restoring focus state during workspace change

Ander Conselvan de Oliveira conselvan2 at gmail.com
Wed May 7 01:57:28 PDT 2014


From: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira at intel.com>

The check to avoid calling weston_keyboard_set_focus() for a seat that
didn't have a keyboard in restore_focus_state() was cheking the wrong
seat (the one from the previous loop). That caused a crash when
switching workspaces if there was an extra seat that didn't have a
keyboard.

https://bugs.freedesktop.org/show_bug.cgi?id=78349
---
 desktop-shell/shell.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index fac3120..ea7b3cd 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -731,7 +731,7 @@ restore_focus_state(struct desktop_shell *shell, struct workspace *ws)
 	wl_list_for_each_safe(seat, next_seat, &pending_seat_list, link) {
 		wl_list_insert(&shell->compositor->seat_list, &seat->link);
 
-		if (state->seat->keyboard == NULL)
+		if (seat->keyboard == NULL)
 			continue;
 
 		weston_keyboard_set_focus(seat->keyboard, NULL);
-- 
1.8.3.2



More information about the wayland-devel mailing list