seat: move 'grab' related struct definitions to include folder 00/278100/1
authorduna.oh <duna.oh@samsung.com>
Wed, 8 Jun 2022 07:46:45 +0000 (16:46 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Mon, 18 Jul 2022 05:08:52 +0000 (14:08 +0900)
Change-Id: If430058bb6a962ef4e859efb0ec91edf423bfb94

include/libds/seat.h
src/seat.h
src/seat/seat_keyboard.c

index dbae0ea..e55fc4c 100644 (file)
@@ -36,6 +36,55 @@ struct ds_event_seat_keyboard_focus_change
     struct ds_seat *seat;
     struct ds_surface *old_surface, *new_surface;
 };
+struct ds_seat_pointer_grab;
+
+struct ds_pointer_grab_interface
+{
+    void (*enter)(struct ds_seat_pointer_grab *grab,
+            struct ds_surface *surface, double sx, double sy);
+    void (*clear_focus)(struct ds_seat_pointer_grab *grab);
+    void (*motion)(struct ds_seat_pointer_grab *grab, uint32_t time_msec,
+            double sx, double sy);
+    uint32_t (*button)(struct ds_seat_pointer_grab *grab, uint32_t time_msec,
+            uint32_t button, enum ds_button_state state);
+    void (*axis)(struct ds_seat_pointer_grab *grab, uint32_t time_msec,
+            enum ds_axis_orientation orientation, double value,
+            int32_t value_discrete, enum ds_axis_source source);
+    void (*frame)(struct ds_seat_pointer_grab *grab);
+    void (*cancel)(struct ds_seat_pointer_grab *grab);
+};
+
+struct ds_seat_keyboard_grab;
+
+struct ds_keyboard_grab_interface
+{
+    void (*enter)(struct ds_seat_keyboard_grab *grab,
+            struct ds_surface *surface, uint32_t keycodes[],
+            size_t num_keycodes, struct ds_keyboard_modifiers *modifiers);
+    void (*clear_focus)(struct ds_seat_keyboard_grab *grab);
+    void (*key)(struct ds_seat_keyboard_grab *grab, uint32_t time_msec,
+            uint32_t key, uint32_t state);
+    void (*modifiers)(struct ds_seat_keyboard_grab *grab,
+            struct ds_keyboard_modifiers *modifiers);
+    void (*cancel)(struct ds_seat_keyboard_grab *grab);
+};
+
+struct ds_touch_point;
+struct ds_seat_touch_grab;
+
+struct ds_touch_grab_interface
+{
+    uint32_t (*down)(struct ds_seat_touch_grab *grab, uint32_t time_msec,
+            struct ds_touch_point *point);
+    void (*up)(struct ds_seat_touch_grab *grab, uint32_t time_msec,
+            struct ds_touch_point *point);
+    void (*motion)(struct ds_seat_touch_grab *grab, uint32_t time_msec,
+            struct ds_touch_point *point);
+    void (*enter)(struct ds_seat_touch_grab *grab, uint32_t time_msec,
+            struct ds_touch_point *point);
+    void (*frame)(struct ds_seat_touch_grab *grab);
+    void (*cancel)(struct ds_seat_touch_grab *grab);
+};
 
 struct ds_seat *ds_seat_create(struct wl_display *display, const char *name);
 
@@ -66,6 +115,11 @@ void ds_seat_pointer_notify_axis(struct ds_seat *seat, uint32_t time_msec,
 
 void ds_seat_pointer_notify_frame(struct ds_seat *seat);
 
+void ds_seat_pointer_start_grab(struct ds_seat *seat,
+        struct ds_seat_pointer_grab *grab);
+
+void ds_seat_pointer_end_grab(struct ds_seat *seat);
+
 void ds_seat_pointer_add_grab_begin_listener(struct ds_seat *seat,
         struct wl_listener *listener);
 
@@ -87,6 +141,18 @@ void ds_seat_keyboard_notify_modifiers(struct ds_seat *seat,
 void ds_seat_keyboard_notify_key(struct ds_seat *seat, uint32_t time_msec,
         uint32_t key, uint32_t state);
 
+struct ds_seat_keyboard_grab *ds_seat_create_keyboard_grab(struct ds_seat *seat,
+        const struct ds_keyboard_grab_interface *iface, void *data);
+
+void ds_seat_keyboard_destroy_grab(struct ds_seat_keyboard_grab *grab);
+
+void *ds_seat_keyboard_grab_get_data(struct ds_seat_keyboard_grab *grab);
+
+void ds_seat_keyboard_start_grab(struct ds_seat *seat,
+        struct ds_seat_keyboard_grab *grab);
+
+void ds_seat_keyboard_end_grab(struct ds_seat *seat);
+
 void ds_seat_keyboard_add_grab_begin_listener(struct ds_seat *seat,
         struct wl_listener *listener);
 
@@ -111,6 +177,11 @@ void ds_seat_touch_notify_motion(struct ds_seat *seat, uint32_t time_msec,
 
 void ds_seat_touch_notify_frame(struct ds_seat *seat);
 
+void ds_seat_touch_start_grab(struct ds_seat *seat,
+        struct ds_seat_touch_grab *grab);
+
+void ds_seat_touch_end_grab(struct ds_seat *seat);
+
 void ds_seat_touch_add_grab_start_listener(struct ds_seat *seat,
         struct wl_listener *listener);
 
index 6295647..94275f5 100644 (file)
@@ -4,56 +4,7 @@
 #include "libds/keyboard.h"
 #include "libds/seat.h"
 
-struct ds_seat_pointer_grab;
-
-struct ds_pointer_grab_interface
-{
-    void (*enter)(struct ds_seat_pointer_grab *grab,
-            struct ds_surface *surface, double sx, double sy);
-    void (*clear_focus)(struct ds_seat_pointer_grab *grab);
-    void (*motion)(struct ds_seat_pointer_grab *grab, uint32_t time_msec,
-            double sx, double sy);
-    uint32_t (*button)(struct ds_seat_pointer_grab *grab, uint32_t time_msec,
-            uint32_t button, enum ds_button_state state);
-    void (*axis)(struct ds_seat_pointer_grab *grab, uint32_t time_msec,
-            enum ds_axis_orientation orientation, double value,
-            int32_t value_discrete, enum ds_axis_source source);
-    void (*frame)(struct ds_seat_pointer_grab *grab);
-    void (*cancel)(struct ds_seat_pointer_grab *grab);
-};
-
-struct ds_seat_keyboard_grab;
-
-struct ds_keyboard_grab_interface
-{
-    void (*enter)(struct ds_seat_keyboard_grab *grab,
-            struct ds_surface *surface, uint32_t keycodes[],
-            size_t num_keycodes, struct ds_keyboard_modifiers *modifiers);
-    void (*clear_focus)(struct ds_seat_keyboard_grab *grab);
-    void (*key)(struct ds_seat_keyboard_grab *grab, uint32_t time_msec,
-            uint32_t key, uint32_t state);
-    void (*modifiers)(struct ds_seat_keyboard_grab *grab,
-            struct ds_keyboard_modifiers *modifiers);
-    void (*cancel)(struct ds_seat_keyboard_grab *grab);
-};
-
-struct ds_touch_point;
-
-struct ds_seat_touch_grab;
-
-struct ds_touch_grab_interface
-{
-    uint32_t (*down)(struct ds_seat_touch_grab *grab, uint32_t time_msec,
-            struct ds_touch_point *point);
-    void (*up)(struct ds_seat_touch_grab *grab, uint32_t time_msec,
-            struct ds_touch_point *point);
-    void (*motion)(struct ds_seat_touch_grab *grab, uint32_t time_msec,
-            struct ds_touch_point *point);
-    void (*enter)(struct ds_seat_touch_grab *grab, uint32_t time_msec,
-            struct ds_touch_point *point);
-    void (*frame)(struct ds_seat_touch_grab *grab);
-    void (*cancel)(struct ds_seat_touch_grab *grab);
-};
+struct ds_pointer_grab_interface;
 
 struct ds_seat_pointer_grab
 {
@@ -62,6 +13,8 @@ struct ds_seat_pointer_grab
     void *data;
 };
 
+struct ds_keyboard_grab_interface;
+
 struct ds_seat_keyboard_grab
 {
     const struct ds_keyboard_grab_interface *iface;
@@ -69,6 +22,8 @@ struct ds_seat_keyboard_grab
     void *data;
 };
 
+struct ds_touch_grab_interface;
+
 struct ds_seat_touch_grab
 {
     const struct ds_touch_grab_interface *iface;
@@ -76,11 +31,6 @@ struct ds_seat_touch_grab
     void *data;
 };
 
-void ds_seat_pointer_start_grab(struct ds_seat *seat,
-        struct ds_seat_pointer_grab *grab);
-
-void ds_seat_pointer_end_grab(struct ds_seat *seat);
-
 void ds_seat_pointer_enter(struct ds_seat *seat, struct ds_surface *surface,
         double sx, double sy);
 
@@ -98,11 +48,6 @@ void ds_seat_pointer_send_axis(struct ds_seat *seat, uint32_t time_msec,
 
 void ds_seat_pointer_send_frame(struct ds_seat *seat);
 
-void ds_seat_keyboard_start_grab(struct ds_seat *seat,
-        struct ds_seat_keyboard_grab *grab);
-
-void ds_seat_keyboard_end_grab(struct ds_seat *seat);
-
 void ds_seat_keyboard_enter(struct ds_seat *seat, struct ds_surface *surface,
         uint32_t keycodes[], size_t num_keycodes,
         struct ds_keyboard_modifiers *modifiers);
@@ -115,11 +60,6 @@ void ds_seat_keyboard_send_key(struct ds_seat *seat, uint32_t time_msec,
 void ds_seat_keyboard_send_modifiers(struct ds_seat *seat,
         struct ds_keyboard_modifiers *modifiers);
 
-void ds_seat_touch_start_grab(struct ds_seat *seat,
-        struct ds_seat_touch_grab *grab);
-
-void ds_seat_touch_end_grab(struct ds_seat *seat);
-
 uint32_t ds_seat_touch_send_down(struct ds_seat *seat,
         struct ds_surface *surface, uint32_t time_msec, int32_t touch_id,
         double sx, double sy);
index 8931a5c..6d6fed6 100644 (file)
@@ -86,6 +86,37 @@ ds_seat_keyboard_start_grab(struct ds_seat *seat,
     wl_signal_emit(&seat->events.keyboard_grab_begin, grab);
 }
 
+struct ds_seat_keyboard_grab *
+ds_seat_create_keyboard_grab(struct ds_seat *seat,
+        const struct ds_keyboard_grab_interface *iface, void *data)
+{
+    struct ds_seat_keyboard_grab *grab;
+
+    grab = calloc(1, sizeof *grab);
+    if (!grab)
+    {
+        return NULL;
+    }
+
+    grab->iface = iface;
+    grab->seat = seat;
+    grab->data = data;
+
+    return grab;
+}
+
+void
+ds_seat_keyboard_destroy_grab(struct ds_seat_keyboard_grab *grab)
+{
+    free(grab);
+}
+
+void *
+ds_seat_keyboard_grab_get_data(struct ds_seat_keyboard_grab *grab)
+{
+    return grab->data;
+}
+
 void
 ds_seat_keyboard_end_grab(struct ds_seat *seat)
 {