seat: Add ds_seat_pointer_get_focused_surface() 17/280017/1
authorSeunghun Lee <shiin.lee@samsung.com>
Wed, 17 Aug 2022 04:35:07 +0000 (13:35 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Mon, 22 Aug 2022 09:08:16 +0000 (18:08 +0900)
This function will be used by data_device to give a focus when a drag
starts.

Change-Id: I13dc4ea73ac8b5d5c4bab6c3e62c1e4976e91a86

src/seat.h
src/seat/seat_pointer.c

index cf8dec9..3971d6a 100644 (file)
@@ -60,6 +60,9 @@ void ds_seat_pointer_send_axis(struct ds_seat *seat, uint32_t time_msec,
 
 void ds_seat_pointer_send_frame(struct ds_seat *seat);
 
+struct ds_surface *ds_seat_pointer_get_focused_surface(struct ds_seat *seat,
+        double *sx, double *sy);
+
 uint32_t ds_seat_pointer_get_grab_button(struct ds_seat *seat);
 
 size_t ds_seat_pointer_get_grab_button_count(struct ds_seat *seat);
index 0f6e96d..f8fb169 100644 (file)
@@ -283,6 +283,21 @@ ds_seat_pointer_send_frame(struct ds_seat *seat)
         pointer_send_frame(resource);
 }
 
+struct ds_surface *
+ds_seat_pointer_get_focused_surface(struct ds_seat *seat,
+        double *sx, double *sy)
+{
+    struct ds_seat_pointer *pointer = &seat->pointer;
+
+    if (!pointer->focused_surface)
+        return NULL;
+
+    if (sx) *sx = pointer->sx;
+    if (sy) *sy = pointer->sy;
+
+    return pointer->focused_surface;
+}
+
 uint32_t
 ds_seat_pointer_get_grab_button(struct ds_seat *seat)
 {