69 lines
1.1 KiB
C
69 lines
1.1 KiB
C
/*
|
|
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
|
*/
|
|
#include "e.h"
|
|
|
|
/* local subsystem functions */
|
|
|
|
/* local subsystem globals */
|
|
Ecore_X_Window grab_mouse_win = 0;
|
|
Ecore_X_Window grab_key_win = 0;
|
|
|
|
/* externally accessible functions */
|
|
int
|
|
e_grabinput_init(void)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
int
|
|
e_grabinput_shutdown(void)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
void
|
|
e_grabinput_get(Ecore_X_Window mouse_win, int confine_mouse, Ecore_X_Window key_win)
|
|
{
|
|
if (grab_mouse_win)
|
|
{
|
|
ecore_x_pointer_ungrab();
|
|
grab_mouse_win = 0;
|
|
}
|
|
if (grab_key_win)
|
|
{
|
|
ecore_x_keyboard_ungrab();
|
|
grab_key_win = 0;
|
|
}
|
|
if (mouse_win)
|
|
{
|
|
if (confine_mouse)
|
|
ecore_x_pointer_confine_grab(mouse_win);
|
|
else
|
|
ecore_x_pointer_grab(mouse_win);
|
|
grab_mouse_win = mouse_win;
|
|
}
|
|
if (key_win)
|
|
{
|
|
ecore_x_keyboard_grab(key_win);
|
|
grab_key_win = key_win;
|
|
}
|
|
}
|
|
|
|
void
|
|
e_grabinput_release(Ecore_X_Window mouse_win, Ecore_X_Window key_win)
|
|
{
|
|
if (mouse_win == grab_mouse_win)
|
|
{
|
|
ecore_x_pointer_ungrab();
|
|
mouse_win = 0;
|
|
}
|
|
if (key_win == grab_key_win)
|
|
{
|
|
ecore_x_keyboard_ungrab();
|
|
grab_key_win = 0;
|
|
}
|
|
}
|
|
|
|
/* local subsystem functions */
|