diff options
| author | Kristian Høgsberg <krh@bitplanet.net> | 2010-12-06 21:35:19 -0500 |
|---|---|---|
| committer | Kristian Høgsberg <krh@bitplanet.net> | 2010-12-06 21:35:19 -0500 |
| commit | 02ef1c1aca7f05ffcd6081af4e1135186614b7d3 (patch) | |
| tree | e0f0d9fa13c640f26434ed8c1a9d388afe1f8a8f /compositor/compositor.c | |
| parent | Use surface destroy notifier for cancelling grabs (diff) | |
| download | wayland-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.c | 34 |
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); |
