ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_UP, ev, NULL, NULL);
}
-static void
+void
_ecore_wl2_input_grab(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, unsigned int button)
{
input->grab.window = window;
input->grab.button = button;
}
-static void
+void
_ecore_wl2_input_ungrab(Ecore_Wl2_Input *input)
{
if ((input->grab.window) && (input->grab.button))
EINA_INLIST;
Ecore_Wl2_Display *display;
+ Ecore_Wl2_Input *input;
Ecore_Wl2_Window *parent;
void _ecore_wl2_input_add(Ecore_Wl2_Display *display, unsigned int id);
void _ecore_wl2_input_del(Ecore_Wl2_Input *input);
+void _ecore_wl2_input_ungrab(Ecore_Wl2_Input *input);
+void _ecore_wl2_input_grab(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, unsigned int button);
+
#endif
static void
_wl_shell_surface_cb_popup_done(void *data EINA_UNUSED, struct wl_shell_surface *shell_surface EINA_UNUSED)
{
- /* TODO: input ungrab ? */
+ Ecore_Wl2_Window *win;
+
+ win = data;
+ if (!win) return;
+
+ _ecore_wl2_input_ungrab(win->input);
}
static const struct wl_shell_surface_listener _wl_shell_surface_listener =
window->geometry.x = x;
window->geometry.y = y;
- /* TODO: input grab release ? */
+ _ecore_wl2_input_ungrab(window->input);
/* TODO: enable once input is done */
/* if (window->xdg_surface) */
window->geometry.w = w;
window->geometry.h = h;
- /* TODO: input grab release ? */
+ _ecore_wl2_input_ungrab(window->input);
/* TODO: enable once input is done */
/* if (window->xdg_surface) */