wayland-server: Track input_device resource for focused surface
authorKristian Høgsberg <krh@bitplanet.net>
Wed, 12 Oct 2011 02:19:34 +0000 (22:19 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 12 Oct 2011 02:19:34 +0000 (22:19 -0400)
We no long track the focused surface, but expect the compositor to set
focus when the focus changes.  We do track the resource for the input
device that corresponds to the current surface, in case that goes away.

src/wayland-server.c

index 2295efc..4cb3dd5 100644 (file)
@@ -342,7 +342,7 @@ lose_pointer_focus(struct wl_listener *listener,
                container_of(listener, struct wl_input_device,
                             pointer_focus_listener);
 
-       wl_input_device_set_pointer_focus(device, NULL, time, 0, 0, 0, 0);
+       device->pointer_focus_resource = NULL;
 }
 
 static void
@@ -353,7 +353,7 @@ lose_keyboard_focus(struct wl_listener *listener,
                container_of(listener, struct wl_input_device,
                             keyboard_focus_listener);
 
-       wl_input_device_set_keyboard_focus(device, NULL, time);
+       device->keyboard_focus_resource = NULL;
 }
 
 WL_EXPORT void
@@ -412,7 +412,7 @@ wl_input_device_set_pointer_focus(struct wl_input_device *device,
                wl_resource_post_event(resource,
                                       WL_INPUT_DEVICE_POINTER_FOCUS,
                                       time, surface, x, y, sx, sy);
-               wl_list_insert(surface->resource.destroy_listener_list.prev,
+               wl_list_insert(resource->destroy_listener_list.prev,
                               &device->pointer_focus_listener.link);
        }
 
@@ -445,7 +445,7 @@ wl_input_device_set_keyboard_focus(struct wl_input_device *device,
                wl_resource_post_event(resource,
                                       WL_INPUT_DEVICE_KEYBOARD_FOCUS,
                                       time, surface, &device->keys);
-               wl_list_insert(surface->resource.destroy_listener_list.prev,
+               wl_list_insert(resource->destroy_listener_list.prev,
                               &device->keyboard_focus_listener.link);
        }