ecore_event_add(ECORE_EVENT_MOUSE_OUT, ev, _input_event_mouse_io_cb_free, ev->dev);
}
-static void
+void
_ecore_wl2_input_mouse_move_send(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, int device)
{
Ecore_Event_Mouse_Move *ev;
input->repeat.enabled = EINA_TRUE;
input->repeat.changed = EINA_FALSE;
+//TIZEN_ONLY(20240429): send mouse move event when client resized
+ input->pointer.sx = -1;
+ input->pointer.sy = -1;
+//
+
wl_array_init(&input->data.selection.types);
wl_array_init(&input->data.drag.types);
_tizen_position_cb_changed(void *data, struct tizen_position *tizen_position EINA_UNUSED, int32_t x, int32_t y)
{
Ecore_Wl2_Window *win;
+ Ecore_Wl2_Input *input;
+ int diff_geom_x, diff_geom_y, ptr_x, ptr_y;
if (!(win = data)) return;
if ((x != win->set_config.geometry.x) || (y != win->set_config.geometry.y))
{
+//TIZEN_ONLY(20240429): send mouse move event when client resized
+ input = ecore_wl2_window_pointer_get(win);
+ if (input && input->pointer.sx >= 0 && input->pointer.sy >= 0)
+ {
+ diff_geom_x = win->set_config.geometry.x - x;
+ diff_geom_y = win->set_config.geometry.y - y;
+ ptr_x = input->pointer.sx + diff_geom_x;
+ ptr_y = input->pointer.sy + diff_geom_y;
+
+ ERR("[position changed] mouse_move_send x:%d, y:%d, diff_geom_x:%d, diff_geom_y:%d, prev(%d,%d) cur(%d,%d)",
+ x, y, diff_geom_x, diff_geom_y, (int)input->pointer.sx, (int)input->pointer.sy, ptr_x, ptr_y);
+
+ input->pointer.sx = ptr_x;
+ input->pointer.sy = ptr_y;
+ _ecore_wl2_input_mouse_move_send(input, input->focus.pointer, 0);
+ }
+//
win->set_config.geometry.x = x;
win->set_config.geometry.y = y;
_ecore_wl2_window_configure_send(win);