Drop dummy wl_grab_surface hack
authorKristian Høgsberg <krh@bitplanet.net>
Tue, 7 Dec 2010 14:15:57 +0000 (09:15 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 7 Dec 2010 14:15:57 +0000 (09:15 -0500)
compositor/compositor.c
compositor/compositor.h
wayland/wayland-server.c
wayland/wayland-server.h

index 737a2c4..136dfef 100644 (file)
@@ -516,7 +516,6 @@ wlsc_input_device_start_grab(struct wlsc_input_device *device,
                (struct wlsc_surface *) device->input_device.pointer_focus;
 
        device->grab = grab;
-       device->grab_surface = focus;
        device->grab_button = button;
        device->grab_time = time;
        device->grab_x = device->x;
@@ -542,8 +541,6 @@ wlsc_input_device_update_grab(struct wlsc_input_device *device,
                return -1;
 
        device->grab = grab;
-       wl_input_device_set_pointer_focus(&device->input_device,
-                                         &wl_grab_surface, time, 0, 0, 0, 0);
 
        return 0;
 }
@@ -769,7 +766,7 @@ notify_motion(struct wlsc_input_device *device, uint32_t time, int x, int y)
                break;
 
        case WLSC_DEVICE_GRAB_MOVE:
-               es = device->grab_surface;
+               es = (struct wlsc_surface *) device->input_device.pointer_focus;
                es->x = x + device->grab_dx;
                es->y = y + device->grab_dy;;
                wl_client_post_event(es->surface.client,
@@ -792,8 +789,7 @@ notify_motion(struct wlsc_input_device *device, uint32_t time, int x, int y)
        case WLSC_DEVICE_GRAB_RESIZE_TOP_RIGHT:
        case WLSC_DEVICE_GRAB_RESIZE_BOTTOM_RIGHT:
        case WLSC_DEVICE_GRAB_RESIZE_MASK:
-               es = device->grab_surface;
-
+               es = (struct wlsc_surface *) device->input_device.pointer_focus;
                if (device->grab & WLSC_DEVICE_GRAB_RESIZE_LEFT) {
                        sx = x + device->grab_dx;
                        width = device->grab_x - x + device->grab_width;
@@ -993,9 +989,7 @@ input_device_attach(struct wl_client *client,
        if (device->input_device.pointer_focus == NULL)
                return;
 
-       if (device->input_device.pointer_focus->client != client &&
-           !(device->input_device.pointer_focus == &wl_grab_surface &&
-             device->grab_surface->surface.client == client))
+       if (device->input_device.pointer_focus->client != client)
                return;
 
        if (buffer == NULL) {
index c27f3be..2eef373 100644 (file)
@@ -92,7 +92,6 @@ struct wlsc_input_device {
        uint32_t modifier_state;
 
        enum wlsc_grab_type grab;
-       struct wlsc_surface *grab_surface;
        uint32_t grab_time;
        int32_t grab_x, grab_y;
        int32_t grab_width, grab_height;
index 1fe3ffc..2c74f8a 100644 (file)
@@ -80,15 +80,6 @@ struct wl_global {
        struct wl_list link;
 };
 
-WL_EXPORT struct wl_surface wl_grab_surface = {
-       {},
-       NULL,
-       {
-               &wl_grab_surface.destroy_listener_list,
-               &wl_grab_surface.destroy_listener_list
-       }
-};
-
 static int wl_debug = 0;
 
 WL_EXPORT void
@@ -98,10 +89,6 @@ wl_client_post_event(struct wl_client *client, struct wl_object *sender,
        struct wl_closure *closure;
        va_list ap;
 
-       if (client == NULL)
-               /* wl_grab_surface case */
-               return;
-
        va_start(ap, opcode);
        closure = wl_connection_vmarshal(client->connection,
                                         sender, opcode, ap,
index 43efcfe..3369a53 100644 (file)
@@ -36,12 +36,6 @@ enum {
        WL_EVENT_WRITEABLE = 0x02
 };
 
-/* FIXME: We really want in-process objects here, so that the
- * compositor grabs can be implemented as passive grabs and the events
- * be delivered to an in-process listener.  For now, we use this
- * special case as the grabbing surface. */
-extern struct wl_surface wl_grab_surface;
-
 struct wl_event_loop;
 struct wl_event_source;
 typedef void (*wl_event_loop_fd_func_t)(int fd, uint32_t mask, void *data);