e_dnd: Added seat to drag object 28/323528/1
authorJunseok Kim <juns.kim@samsung.com>
Thu, 3 Apr 2025 06:49:55 +0000 (15:49 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 30 Apr 2025 00:26:08 +0000 (09:26 +0900)
Change-Id: I6de295f749e0965a4b677ec542ecaa764c5223a1

src/bin/server/e_comp_wl_data.c
src/bin/windowmgr/e_dnd.c
src/bin/windowmgr/e_dnd_intern.h

index 5d4ba1f49d4a49c7e4f2656d2338ea74f71e1b1c..b1e1024a8aab473cfe7cc621ccc5a1aa6c4e7067 100644 (file)
@@ -1048,7 +1048,7 @@ _e_comp_wl_data_device_cb_drag_start(struct wl_client *client EINA_UNUSED, struc
    desk = e_zone_desk_find_by_ec(zone, ec);
 
    evas_pointer_canvas_xy_get(e_comp_evas_get(), &x, &y);
-   comp_wl->drag = e_drag_new(x, y, _e_comp_wl_data_device_drag_finished);
+   comp_wl->drag = e_drag_new(seat, x, y, _e_comp_wl_data_device_drag_finished);
    comp_wl->drag->button_mask = evas_pointer_button_down_mask_get(e_comp_evas_get());
    if (drag_icon_ec)
      {
index a70286eb92580b9be18be8e6e144eaef7e3a786d..52a48fbec5fcf23b7241864fa172dd8482623a4e 100644 (file)
@@ -9,6 +9,8 @@
 #include "e_view_edje_intern.h"
 #include "e_view_rect.h"
 #include "e_input.h"
+#include "e_policy_desk_area_intern.h"
+
 #include "services/e_service_kvm_intern.h"
 
 struct _E_Drag_Hook
@@ -189,13 +191,14 @@ e_drag_current_get(void)
 }
 
 EINTERN E_Drag *
-e_drag_new(int x, int y, E_Drag_Finished_Cb finished_cb)
+e_drag_new(E_Seat *seat, int x, int y, E_Drag_Finished_Cb finished_cb)
 {
    E_Drag *drag;
 
    drag = e_object_alloc(sizeof(E_Drag),
                          E_DRAG_TYPE, E_OBJECT_CLEANUP_FUNC(_e_drag_free));
    if (!drag) return NULL;
+   drag->seat = seat;
    drag->x = x;
    drag->y = y;
    drag->w = 24;
index db304a729651c0f870c1db5ae0c5879f2d35f3dc..63cd56ef6cef838feaa64ce9d2a6584f51313240 100644 (file)
@@ -5,6 +5,7 @@
 #include "e_dnd.h"
 #include "e_view_intern.h"
 #include "e_view_edje_intern.h"
+#include "e_seat_intern.h"
 
 #define E_DRAG_TYPE 0xE0b0100f
 
@@ -29,6 +30,8 @@ typedef void (*E_Drag_Finished_Cb)(E_Drag *drag, E_Dnd_Drop_Type type);
 
 struct _E_Drag
 {
+   E_Seat *seat;
+
    E_Object           e_obj_inherit;
    struct
      {
@@ -54,7 +57,7 @@ EINTERN int e_dnd_shutdown(void);
 
 EINTERN E_Drag *e_drag_current_get(void);
 /* x and y are the top left coords of the object that is to be dragged */
-EINTERN E_Drag *e_drag_new(int x, int y, E_Drag_Finished_Cb finished_cb);
+EINTERN E_Drag *e_drag_new(E_Seat *seat, int x, int y, E_Drag_Finished_Cb finished_cb);
 EINTERN void    e_drag_view_set(E_Drag *drag, E_View *view);
 EINTERN void    e_drag_reference_point_set(E_Drag *drag, int x, int y);
 EINTERN void    e_drag_move(E_Drag *drag, int x, int y);