diff options
| author | Kristian Høgsberg <krh@bitplanet.net> | 2011-01-05 17:34:54 -0500 |
|---|---|---|
| committer | Kristian Høgsberg <krh@bitplanet.net> | 2011-01-05 17:34:54 -0500 |
| commit | 5753188e1663241338c0b31428b0dd7a6641044b (patch) | |
| tree | aa511b40aeb504abec2af9229e63c1d7abff4f09 /compositor/compositor.c | |
| parent | Install the pkgconfig files (diff) | |
| download | wayland-5753188e1663241338c0b31428b0dd7a6641044b.tar wayland-5753188e1663241338c0b31428b0dd7a6641044b.tar.gz wayland-5753188e1663241338c0b31428b0dd7a6641044b.tar.bz2 wayland-5753188e1663241338c0b31428b0dd7a6641044b.tar.lz wayland-5753188e1663241338c0b31428b0dd7a6641044b.tar.xz wayland-5753188e1663241338c0b31428b0dd7a6641044b.tar.zst wayland-5753188e1663241338c0b31428b0dd7a6641044b.zip | |
Move basic grab handling to core libraries
Diffstat (limited to 'compositor/compositor.c')
| -rw-r--r-- | compositor/compositor.c | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/compositor/compositor.c b/compositor/compositor.c index d9b81d8..4290e75 100644 --- a/compositor/compositor.c +++ b/compositor/compositor.c @@ -499,56 +499,6 @@ wlsc_input_device_set_pointer_image(struct wlsc_input_device *device, pointer_images[type].hotspot_y); } -static void -wl_input_device_end_grab(struct wl_input_device *device, uint32_t time); - -static void -lose_grab_surface(struct wl_listener *listener, - struct wl_surface *surface, uint32_t time) -{ - struct wl_input_device *device = - container_of(listener, - struct wl_input_device, grab_listener); - - wl_input_device_end_grab(device, time); -} - -static void -wl_input_device_start_grab(struct wl_input_device *device, - struct wl_grab *grab, - uint32_t button, uint32_t time) -{ - struct wl_surface *focus = device->pointer_focus; - - device->grab = grab; - device->grab_button = button; - device->grab_time = time; - device->grab_x = device->x; - device->grab_y = device->y; - - device->grab_listener.func = lose_grab_surface; - wl_list_insert(focus->destroy_listener_list.prev, - &device->grab_listener.link); - - grab->input_device = device; -} - -static int -wl_input_device_update_grab(struct wl_input_device *device, - struct wl_grab *grab, - struct wl_surface *surface, uint32_t time) -{ - if (device->grab != &device->motion_grab || - device->grab_time != time || - device->pointer_focus != surface) - return -1; - - device->grab = grab; - grab->input_device = device; - - return 0; -} - struct wlsc_move_grab { struct wl_grab grab; int32_t dx, dy; @@ -933,25 +883,6 @@ notify_motion(struct wl_input_device *device, uint32_t time, int x, int y) wlsc_compositor_schedule_repaint(ec); } -static void -wl_input_device_end_grab(struct wl_input_device *device, uint32_t time) -{ - struct wlsc_surface *es; - const struct wl_grab_interface *interface; - int32_t sx, sy; - - interface = device->grab->interface; - interface->end(device->grab, time); - device->grab->input_device = NULL; - device->grab = NULL; - - wl_list_remove(&device->grab_listener.link); - es = pick_surface(device, &sx, &sy); - wl_input_device_set_pointer_focus(device, - &es->surface, time, - device->x, device->y, sx, sy); -} - void notify_button(struct wl_input_device *device, uint32_t time, int32_t button, int32_t state) |
