From: Junseok Kim Date: Thu, 3 Apr 2025 06:49:55 +0000 (+0900) Subject: e_dnd: Added seat to drag object X-Git-Tag: accepted/tizen/unified/20250508.083751~40 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F28%2F323528%2F1;p=platform%2Fupstream%2Fenlightenment.git e_dnd: Added seat to drag object Change-Id: I6de295f749e0965a4b677ec542ecaa764c5223a1 --- diff --git a/src/bin/server/e_comp_wl_data.c b/src/bin/server/e_comp_wl_data.c index 5d4ba1f49d..b1e1024a8a 100644 --- a/src/bin/server/e_comp_wl_data.c +++ b/src/bin/server/e_comp_wl_data.c @@ -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) { diff --git a/src/bin/windowmgr/e_dnd.c b/src/bin/windowmgr/e_dnd.c index a70286eb92..52a48fbec5 100644 --- a/src/bin/windowmgr/e_dnd.c +++ b/src/bin/windowmgr/e_dnd.c @@ -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; diff --git a/src/bin/windowmgr/e_dnd_intern.h b/src/bin/windowmgr/e_dnd_intern.h index db304a7296..63cd56ef6c 100644 --- a/src/bin/windowmgr/e_dnd_intern.h +++ b/src/bin/windowmgr/e_dnd_intern.h @@ -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);