diff --git a/src/lib/ecore_wl2/ecore_wl2_input.c b/src/lib/ecore_wl2/ecore_wl2_input.c index 3082c5af05..256dd45c15 100644 --- a/src/lib/ecore_wl2/ecore_wl2_input.c +++ b/src/lib/ecore_wl2/ecore_wl2_input.c @@ -717,11 +717,11 @@ _pointer_cb_enter(void *data, struct wl_pointer *pointer EINA_UNUSED, unsigned i _ecore_wl2_input_mouse_in_send(input, window); - if ((window->moving) && (input->grab.window == window)) + if ((window->moving || window->resizing) && (input->grab.window == window)) { _ecore_wl2_input_mouse_up_send(input, window, 0, input->grab.button, input->grab.timestamp); - window->moving = EINA_FALSE; + window->resizing = window->moving = EINA_FALSE; } } diff --git a/src/lib/ecore_wl2/ecore_wl2_private.h b/src/lib/ecore_wl2/ecore_wl2_private.h index 47590552b6..09fc0abc1c 100644 --- a/src/lib/ecore_wl2/ecore_wl2_private.h +++ b/src/lib/ecore_wl2/ecore_wl2_private.h @@ -231,6 +231,7 @@ struct _Ecore_Wl2_Window Ecore_Wl2_Window_Configure_State def_config; Eina_Bool moving : 1; + Eina_Bool resizing : 1; Eina_Bool alpha : 1; Eina_Bool transparent : 1; diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c b/src/lib/ecore_wl2/ecore_wl2_window.c index c907f08ad0..43ab769f80 100644 --- a/src/lib/ecore_wl2/ecore_wl2_window.c +++ b/src/lib/ecore_wl2/ecore_wl2_window.c @@ -751,6 +751,8 @@ ecore_wl2_window_resize(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input, int lo if (!input) input = EINA_INLIST_CONTAINER_GET(window->display->inputs, Ecore_Wl2_Input); + window->resizing = EINA_TRUE; + if (window->xdg_toplevel) xdg_toplevel_resize(window->xdg_toplevel, input->wl.seat, window->display->serial, location);