aboutsummaryrefslogtreecommitdiffstats
path: root/compositor/compositor.c
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2010-12-06 21:35:19 -0500
committerKristian Høgsberg <krh@bitplanet.net>2010-12-06 21:35:19 -0500
commit02ef1c1aca7f05ffcd6081af4e1135186614b7d3 (patch)
treee0f0d9fa13c640f26434ed8c1a9d388afe1f8a8f /compositor/compositor.c
parentUse surface destroy notifier for cancelling grabs (diff)
downloadwayland-02ef1c1aca7f05ffcd6081af4e1135186614b7d3.tar
wayland-02ef1c1aca7f05ffcd6081af4e1135186614b7d3.tar.gz
wayland-02ef1c1aca7f05ffcd6081af4e1135186614b7d3.tar.bz2
wayland-02ef1c1aca7f05ffcd6081af4e1135186614b7d3.tar.lz
wayland-02ef1c1aca7f05ffcd6081af4e1135186614b7d3.tar.xz
wayland-02ef1c1aca7f05ffcd6081af4e1135186614b7d3.tar.zst
wayland-02ef1c1aca7f05ffcd6081af4e1135186614b7d3.zip
Move focus tracking surface destroy callbacks into core
Diffstat (limited to 'compositor/compositor.c')
-rw-r--r--compositor/compositor.c34
1 files changed, 2 insertions, 32 deletions
diff --git a/compositor/compositor.c b/compositor/compositor.c
index fa60548..88b323f 100644
--- a/compositor/compositor.c
+++ b/compositor/compositor.c
@@ -1161,37 +1161,12 @@ static const struct wl_drag_interface drag_interface = {
drag_cancel,
};
-static void
-lose_pointer_focus(struct wl_listener *listener,
- struct wl_surface *surface)
-{
- struct wlsc_input_device *device =
- container_of(listener, struct wlsc_input_device,
- input_device.pointer_focus_listener);
- uint32_t time;
-
- time = wl_display_get_time(wl_client_get_display(surface->client));
- wl_input_device_set_pointer_focus(&device->input_device,
- NULL, time, 0, 0, 0, 0);
-}
-
-static void
-lose_keyboard_focus(struct wl_listener *listener,
- struct wl_surface *surface)
-{
- struct wlsc_input_device *device =
- container_of(listener, struct wlsc_input_device,
- input_device.keyboard_focus_listener);
- uint32_t time;
-
- time = wl_display_get_time(wl_client_get_display(surface->client));
- wl_input_device_set_keyboard_focus(&device->input_device, NULL, time);
-}
-
void
wlsc_input_device_init(struct wlsc_input_device *device,
struct wlsc_compositor *ec)
{
+ wl_input_device_init(&device->input_device);
+
device->input_device.object.interface = &wl_input_device_interface;
device->input_device.object.implementation =
(void (**)(void)) &input_device_interface;
@@ -1206,11 +1181,6 @@ wlsc_input_device_init(struct wlsc_input_device *device,
device->hotspot_x = 16;
device->hotspot_y = 16;
- wl_list_init(&device->input_device.pointer_focus_listener.link);
- device->input_device.pointer_focus_listener.func = lose_pointer_focus;
- wl_list_init(&device->input_device.keyboard_focus_listener.link);
- device->input_device.keyboard_focus_listener.func = lose_keyboard_focus;
-
wl_list_insert(ec->input_device_list.prev, &device->link);
wlsc_input_device_set_pointer_image(device, WLSC_POINTER_LEFT_PTR);