parent
5e5a533a6d
commit
3e5b2ba96a
|
@ -36,49 +36,55 @@ e_grabinput_shutdown(void)
|
||||||
EAPI int
|
EAPI int
|
||||||
e_grabinput_get(Ecore_Window mouse_win, int confine_mouse, Ecore_Window key_win)
|
e_grabinput_get(Ecore_Window mouse_win, int confine_mouse, Ecore_Window key_win)
|
||||||
{
|
{
|
||||||
if (e_comp->comp_type != E_PIXMAP_TYPE_X) return 1;
|
|
||||||
if (grab_mouse_win)
|
if (grab_mouse_win)
|
||||||
{
|
{
|
||||||
#ifndef HAVE_WAYLAND_ONLY
|
#ifndef HAVE_WAYLAND_ONLY
|
||||||
ecore_x_pointer_ungrab();
|
if (e_comp->comp_type == E_PIXMAP_TYPE_X)
|
||||||
|
ecore_x_pointer_ungrab();
|
||||||
#endif
|
#endif
|
||||||
grab_mouse_win = 0;
|
grab_mouse_win = 0;
|
||||||
}
|
}
|
||||||
if (grab_key_win)
|
if (grab_key_win)
|
||||||
{
|
{
|
||||||
#ifndef HAVE_WAYLAND_ONLY
|
#ifndef HAVE_WAYLAND_ONLY
|
||||||
ecore_x_keyboard_ungrab();
|
if (e_comp->comp_type == E_PIXMAP_TYPE_X)
|
||||||
|
ecore_x_keyboard_ungrab();
|
||||||
#endif
|
#endif
|
||||||
grab_key_win = 0;
|
grab_key_win = 0;
|
||||||
focus_win = 0;
|
focus_win = 0;
|
||||||
}
|
}
|
||||||
if (mouse_win)
|
if (mouse_win)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
#ifndef HAVE_WAYLAND_ONLY
|
#ifndef HAVE_WAYLAND_ONLY
|
||||||
if (confine_mouse)
|
if (e_comp->comp_type == E_PIXMAP_TYPE_X)
|
||||||
ret = ecore_x_pointer_confine_grab(mouse_win);
|
{
|
||||||
else
|
int ret = 0;
|
||||||
ret = ecore_x_pointer_grab(mouse_win);
|
if (confine_mouse)
|
||||||
|
ret = ecore_x_pointer_confine_grab(mouse_win);
|
||||||
|
else
|
||||||
|
ret = ecore_x_pointer_grab(mouse_win);
|
||||||
|
if (!ret) return 0;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!ret) return 0;
|
|
||||||
grab_mouse_win = mouse_win;
|
grab_mouse_win = mouse_win;
|
||||||
}
|
}
|
||||||
if (key_win)
|
if (key_win)
|
||||||
{
|
{
|
||||||
#ifndef HAVE_WAYLAND_ONLY
|
#ifndef HAVE_WAYLAND_ONLY
|
||||||
int ret = 0;
|
if (e_comp->comp_type == E_PIXMAP_TYPE_X)
|
||||||
|
|
||||||
ret = ecore_x_keyboard_grab(key_win);
|
|
||||||
if (!ret)
|
|
||||||
{
|
{
|
||||||
if (grab_mouse_win)
|
int ret = 0;
|
||||||
|
|
||||||
|
ret = ecore_x_keyboard_grab(key_win);
|
||||||
|
if (!ret)
|
||||||
{
|
{
|
||||||
ecore_x_pointer_ungrab();
|
if (grab_mouse_win)
|
||||||
grab_mouse_win = 0;
|
{
|
||||||
|
ecore_x_pointer_ungrab();
|
||||||
|
grab_mouse_win = 0;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
grab_key_win = key_win;
|
grab_key_win = key_win;
|
||||||
|
@ -92,18 +98,19 @@ e_grabinput_get(Ecore_Window mouse_win, int confine_mouse, Ecore_Window key_win)
|
||||||
EAPI void
|
EAPI void
|
||||||
e_grabinput_release(Ecore_Window mouse_win, Ecore_Window key_win)
|
e_grabinput_release(Ecore_Window mouse_win, Ecore_Window key_win)
|
||||||
{
|
{
|
||||||
if (e_comp->comp_type != E_PIXMAP_TYPE_X) return;
|
|
||||||
if (mouse_win == grab_mouse_win)
|
if (mouse_win == grab_mouse_win)
|
||||||
{
|
{
|
||||||
#ifndef HAVE_WAYLAND_ONLY
|
#ifndef HAVE_WAYLAND_ONLY
|
||||||
ecore_x_pointer_ungrab();
|
if (e_comp->comp_type == E_PIXMAP_TYPE_X)
|
||||||
|
ecore_x_pointer_ungrab();
|
||||||
#endif
|
#endif
|
||||||
grab_mouse_win = 0;
|
grab_mouse_win = 0;
|
||||||
}
|
}
|
||||||
if (key_win == grab_key_win)
|
if (key_win == grab_key_win)
|
||||||
{
|
{
|
||||||
#ifndef HAVE_WAYLAND_ONLY
|
#ifndef HAVE_WAYLAND_ONLY
|
||||||
ecore_x_keyboard_ungrab();
|
if (e_comp->comp_type == E_PIXMAP_TYPE_X)
|
||||||
|
ecore_x_keyboard_ungrab();
|
||||||
#endif
|
#endif
|
||||||
grab_key_win = 0;
|
grab_key_win = 0;
|
||||||
if (focus_win != 0)
|
if (focus_win != 0)
|
||||||
|
|
Loading…
Reference in New Issue