diff --git a/legacy/ecore/src/lib/ecore_x/Ecore_X.h b/legacy/ecore/src/lib/ecore_x/Ecore_X.h index 46f75c4f09..f7da147ded 100644 --- a/legacy/ecore/src/lib/ecore_x/Ecore_X.h +++ b/legacy/ecore/src/lib/ecore_x/Ecore_X.h @@ -1162,6 +1162,8 @@ EAPI int ecore_x_client_message8_send(Ecore_X_Window win, Ecore_X_A EAPI int ecore_x_pointer_grab(Ecore_X_Window win); + EAPI int + ecore_x_pointer_confine_grab(Ecore_X_Window win); EAPI void ecore_x_pointer_ungrab(void); EAPI int diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x.c b/legacy/ecore/src/lib/ecore_x/ecore_x.c index 6ac7cdb82c..e1719869fd 100644 --- a/legacy/ecore/src/lib/ecore_x/ecore_x.c +++ b/legacy/ecore/src/lib/ecore_x/ecore_x.c @@ -1188,6 +1188,16 @@ ecore_x_pointer_grab(Ecore_X_Window win) None, None, CurrentTime); } +int +ecore_x_pointer_confine_grab(Ecore_X_Window win) +{ + return XGrabPointer(_ecore_x_disp, win, False, + ButtonPressMask | ButtonReleaseMask | + EnterWindowMask | LeaveWindowMask | PointerMotionMask, + GrabModeAsync, GrabModeAsync, + win, None, CurrentTime); +} + void ecore_x_pointer_ungrab(void) {