diff --git a/src/wayland/meta-wayland-keyboard.c b/src/wayland/meta-wayland-keyboard.c index 198996e2b..c357b77f1 100644 --- a/src/wayland/meta-wayland-keyboard.c +++ b/src/wayland/meta-wayland-keyboard.c @@ -225,8 +225,11 @@ keyboard_handle_focus_surface_destroy (struct wl_listener *listener, void *data) wl_list_remove (&keyboard->focus_surface_listener.link); keyboard->focus_surface = NULL; - wl_list_remove (&keyboard->focus_resource_listener.link); - keyboard->focus_resource = NULL; + if (keyboard->focus_resource) + { + wl_list_remove (&keyboard->focus_resource_listener.link); + keyboard->focus_resource = NULL; + } } static void diff --git a/src/wayland/meta-wayland-pointer.c b/src/wayland/meta-wayland-pointer.c index e554cb6a2..21e41bb80 100644 --- a/src/wayland/meta-wayland-pointer.c +++ b/src/wayland/meta-wayland-pointer.c @@ -63,8 +63,11 @@ pointer_handle_focus_surface_destroy (struct wl_listener *listener, void *data) wl_list_remove (&pointer->focus_surface_listener.link); pointer->focus_surface = NULL; - wl_list_remove (&pointer->focus_resource_listener.link); - pointer->focus_resource = NULL; + if (pointer->focus_resource) + { + wl_list_remove (&pointer->focus_resource_listener.link); + pointer->focus_resource = NULL; + } } static void