From 3b74db467b7f628ad45ee319424448a02dc052ec Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Sun, 19 Nov 2017 09:33:55 -0500 Subject: data-device: wlr-drag-icon --- include/rootston/seat.h | 16 ---------------- include/wlr/types/wlr_data_device.h | 25 +++++++++++++++++++++++-- include/wlr/types/wlr_seat.h | 2 ++ 3 files changed, 25 insertions(+), 18 deletions(-) (limited to 'include') diff --git a/include/rootston/seat.h b/include/rootston/seat.h index aebd4399..dad8bbc4 100644 --- a/include/rootston/seat.h +++ b/include/rootston/seat.h @@ -4,27 +4,11 @@ #include "rootston/input.h" #include "rootston/keyboard.h" -struct roots_drag_icon { - struct wlr_surface *surface; - struct wl_list link; // roots_seat::drag_icons - bool mapped; - - bool is_pointer; - int32_t touch_id; - - int32_t sx; - int32_t sy; - - struct wl_listener surface_destroy; - struct wl_listener surface_commit; -}; - struct roots_seat { struct roots_input *input; struct wlr_seat *seat; struct roots_cursor *cursor; struct wl_list link; - struct wl_list drag_icons; // coordinates of the first touch point if it exists int32_t touch_id; diff --git a/include/wlr/types/wlr_data_device.h b/include/wlr/types/wlr_data_device.h index 189ab59b..7ee6cec1 100644 --- a/include/wlr/types/wlr_data_device.h +++ b/include/wlr/types/wlr_data_device.h @@ -53,6 +53,27 @@ struct wlr_data_source { } events; }; +struct wlr_drag_icon { + struct wlr_surface *surface; + struct wlr_seat_client *client; + struct wl_list link; // wlr_seat::drag_icons + bool mapped; + + bool is_pointer; + int32_t touch_id; + + int32_t sx; + int32_t sy; + + struct { + struct wl_signal destroy; + } events; + + struct wl_listener surface_destroy; + struct wl_listener surface_commit; + struct wl_listener seat_client_unbound; +}; + struct wlr_drag { struct wlr_seat_pointer_grab pointer_grab; struct wlr_seat_keyboard_grab keyboard_grab; @@ -64,7 +85,7 @@ struct wlr_drag { bool is_pointer_grab; - struct wlr_surface *icon; + struct wlr_drag_icon *icon; struct wlr_surface *focus; struct wlr_data_source *source; @@ -72,9 +93,9 @@ struct wlr_drag { int32_t grab_touch_id; struct wl_listener point_destroy; - struct wl_listener icon_destroy; struct wl_listener source_destroy; struct wl_listener seat_client_unbound; + struct wl_listener icon_destroy; }; /** diff --git a/include/wlr/types/wlr_seat.h b/include/wlr/types/wlr_seat.h index dbd03401..b5c06718 100644 --- a/include/wlr/types/wlr_seat.h +++ b/include/wlr/types/wlr_seat.h @@ -165,6 +165,8 @@ struct wlr_seat { struct wl_global *wl_global; struct wl_display *display; struct wl_list clients; + struct wl_list drag_icons; // wlr_drag_icon::link + char *name; uint32_t capabilities; struct timespec last_event; -- cgit v1.2.3 From bd8cdf1e9ff0ba6a0e8f7c36fec7f7540c94fded Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Sun, 19 Nov 2017 10:20:32 -0500 Subject: rootston: remove grab listeners --- include/rootston/cursor.h | 18 ------------------ rootston/cursor.c | 16 ---------------- rootston/seat.c | 48 ----------------------------------------------- 3 files changed, 82 deletions(-) (limited to 'include') diff --git a/include/rootston/cursor.h b/include/rootston/cursor.h index f0c9be89..e2a371bf 100644 --- a/include/rootston/cursor.h +++ b/include/rootston/cursor.h @@ -53,12 +53,6 @@ struct roots_cursor { struct wl_listener tool_axis; struct wl_listener tool_tip; - struct wl_listener pointer_grab_begin; - struct wl_listener pointer_grab_end; - - struct wl_listener touch_grab_begin; - struct wl_listener touch_grab_end; - struct wl_listener request_set_cursor; }; @@ -96,16 +90,4 @@ void roots_cursor_handle_tool_tip(struct roots_cursor *cursor, void roots_cursor_handle_request_set_cursor(struct roots_cursor *cursor, struct wlr_seat_pointer_request_set_cursor_event *event); -void roots_cursor_handle_pointer_grab_begin(struct roots_cursor *cursor, - struct wlr_seat_pointer_grab *grab); - -void roots_cursor_handle_pointer_grab_end(struct roots_cursor *cursor, - struct wlr_seat_pointer_grab *grab); - -void roots_cursor_handle_touch_grab_begin(struct roots_cursor *cursor, - struct wlr_seat_touch_grab *grab); - -void roots_cursor_handle_touch_grab_end(struct roots_cursor *cursor, - struct wlr_seat_touch_grab *grab); - #endif diff --git a/rootston/cursor.c b/rootston/cursor.c index d0b40876..e2615bec 100644 --- a/rootston/cursor.c +++ b/rootston/cursor.c @@ -354,19 +354,3 @@ void roots_cursor_handle_request_set_cursor(struct roots_cursor *cursor, event->hotspot_y); cursor->cursor_client = event->seat_client->client; } - -void roots_cursor_handle_pointer_grab_begin(struct roots_cursor *cursor, - struct wlr_seat_pointer_grab *grab) { -} - -void roots_cursor_handle_pointer_grab_end(struct roots_cursor *cursor, - struct wlr_seat_pointer_grab *grab) { -} - -void roots_cursor_handle_touch_grab_begin(struct roots_cursor *cursor, - struct wlr_seat_touch_grab *grab) { -} - -void roots_cursor_handle_touch_grab_end(struct roots_cursor *cursor, - struct wlr_seat_touch_grab *grab) { -} diff --git a/rootston/seat.c b/rootston/seat.c index 96c6fb0d..c24ee787 100644 --- a/rootston/seat.c +++ b/rootston/seat.c @@ -96,38 +96,6 @@ static void handle_request_set_cursor(struct wl_listener *listener, roots_cursor_handle_request_set_cursor(cursor, event); } -static void handle_pointer_grab_begin(struct wl_listener *listener, - void *data) { - struct roots_cursor *cursor = - wl_container_of(listener, cursor, pointer_grab_begin); - struct wlr_seat_pointer_grab *grab = data; - roots_cursor_handle_pointer_grab_begin(cursor, grab); -} - -static void handle_pointer_grab_end(struct wl_listener *listener, - void *data) { - struct roots_cursor *cursor = - wl_container_of(listener, cursor, pointer_grab_end); - struct wlr_seat_pointer_grab *grab = data; - roots_cursor_handle_pointer_grab_end(cursor, grab); -} - -static void handle_touch_grab_begin(struct wl_listener *listener, - void *data) { - struct roots_cursor *cursor = - wl_container_of(listener, cursor, touch_grab_begin); - struct wlr_seat_touch_grab *grab = data; - roots_cursor_handle_touch_grab_begin(cursor, grab); -} - -static void handle_touch_grab_end(struct wl_listener *listener, - void *data) { - struct roots_cursor *cursor = - wl_container_of(listener, cursor, touch_grab_end); - struct wlr_seat_touch_grab *grab = data; - roots_cursor_handle_touch_grab_end(cursor, grab); -} - static void seat_reset_device_mappings(struct roots_seat *seat, struct wlr_input_device *device) { struct wlr_cursor *cursor = seat->cursor->cursor; @@ -249,22 +217,6 @@ static void roots_seat_init_cursor(struct roots_seat *seat) { wl_signal_add(&seat->seat->events.request_set_cursor, &seat->cursor->request_set_cursor); seat->cursor->request_set_cursor.notify = handle_request_set_cursor; - - wl_signal_add(&seat->seat->events.pointer_grab_begin, - &seat->cursor->pointer_grab_begin); - seat->cursor->pointer_grab_begin.notify = handle_pointer_grab_begin; - - wl_signal_add(&seat->seat->events.pointer_grab_end, - &seat->cursor->pointer_grab_end); - seat->cursor->pointer_grab_end.notify = handle_pointer_grab_end; - - wl_signal_add(&seat->seat->events.touch_grab_begin, - &seat->cursor->touch_grab_begin); - seat->cursor->touch_grab_begin.notify = handle_touch_grab_begin; - - wl_signal_add(&seat->seat->events.touch_grab_end, - &seat->cursor->touch_grab_end); - seat->cursor->touch_grab_end.notify = handle_touch_grab_end; } struct roots_seat *roots_seat_create(struct roots_input *input, char *name) { -- cgit v1.2.3