diff --git a/src/wayland/meta-wayland-keyboard.c b/src/wayland/meta-wayland-keyboard.c index 9b54fcbb1..5b98c4f6f 100644 --- a/src/wayland/meta-wayland-keyboard.c +++ b/src/wayland/meta-wayland-keyboard.c @@ -507,9 +507,6 @@ meta_wayland_keyboard_set_focus (MetaWaylandKeyboard *keyboard, if (keyboard->focus_surface != NULL) { - wl_list_remove (&keyboard->focus_surface_listener.link); - keyboard->focus_surface = NULL; - if (keyboard->focus_resource) { if (keyboard->focus_surface->resource) @@ -523,6 +520,9 @@ meta_wayland_keyboard_set_focus (MetaWaylandKeyboard *keyboard, wl_list_remove (&keyboard->focus_resource_listener.link); keyboard->focus_resource = NULL; } + + wl_list_remove (&keyboard->focus_surface_listener.link); + keyboard->focus_surface = NULL; } if (surface != NULL) diff --git a/src/wayland/meta-wayland-pointer.c b/src/wayland/meta-wayland-pointer.c index 907003fd2..2a72fc1a5 100644 --- a/src/wayland/meta-wayland-pointer.c +++ b/src/wayland/meta-wayland-pointer.c @@ -328,9 +328,6 @@ meta_wayland_pointer_set_focus (MetaWaylandPointer *pointer, if (pointer->focus_surface) { - wl_list_remove (&pointer->focus_surface_listener.link); - pointer->focus_surface = NULL; - if (pointer->focus_resource) { if (pointer->focus_surface->resource) @@ -342,10 +339,11 @@ meta_wayland_pointer_set_focus (MetaWaylandPointer *pointer, } wl_list_remove (&pointer->focus_resource_listener.link); - - pointer->focus_surface = NULL; pointer->focus_resource = NULL; } + + wl_list_remove (&pointer->focus_surface_listener.link); + pointer->focus_surface = NULL; } if (surface != NULL)