diff options
Diffstat (limited to 'xutil.c')
-rw-r--r-- | xutil.c | 75 |
1 files changed, 39 insertions, 36 deletions
diff --git a/xutil.c b/xutil.c index 45c19e9..ca07cae 100644 --- a/xutil.c +++ b/xutil.c @@ -32,6 +32,45 @@ static unsigned int ign_mods[] = { 0, LockMask, Mod2Mask, Mod2Mask | LockMask }; +void +xu_btn_grab(Window win, int mask, u_int btn) +{ + u_int i; + + for (i = 0; i < nitems(ign_mods); i++) + XGrabButton(X_Dpy, btn, (mask | ign_mods[i]), win, + False, BUTTONMASK, GrabModeAsync, + GrabModeSync, None, None); +} + +void +xu_btn_ungrab(Window win) +{ + XUngrabButton(X_Dpy, AnyButton, AnyModifier, win); +} + +void +xu_key_grab(Window win, u_int mask, KeySym keysym) +{ + KeyCode code; + u_int i; + + code = XKeysymToKeycode(X_Dpy, keysym); + if ((XkbKeycodeToKeysym(X_Dpy, code, 0, 0) != keysym) && + (XkbKeycodeToKeysym(X_Dpy, code, 0, 1) == keysym)) + mask |= ShiftMask; + + for (i = 0; i < nitems(ign_mods); i++) + XGrabKey(X_Dpy, code, (mask | ign_mods[i]), win, + True, GrabModeAsync, GrabModeAsync); +} + +void +xu_key_ungrab(Window win) +{ + XUngrabKey(X_Dpy, AnyKey, AnyModifier, win); +} + int xu_ptr_grab(Window win, u_int mask, Cursor curs) { @@ -54,26 +93,6 @@ xu_ptr_ungrab(void) } void -xu_btn_grab(Window win, int mask, u_int btn) -{ - u_int i; - - for (i = 0; i < nitems(ign_mods); i++) - XGrabButton(X_Dpy, btn, (mask | ign_mods[i]), win, - False, BUTTONMASK, GrabModeAsync, - GrabModeSync, None, None); -} - -void -xu_btn_ungrab(Window win, int mask, u_int btn) -{ - u_int i; - - for (i = 0; i < nitems(ign_mods); i++) - XUngrabButton(X_Dpy, btn, (mask | ign_mods[i]), win); -} - -void xu_ptr_getpos(Window win, int *x, int *y) { Window w0, w1; @@ -89,22 +108,6 @@ xu_ptr_setpos(Window win, int x, int y) XWarpPointer(X_Dpy, None, win, 0, 0, 0, 0, x, y); } -void -xu_key_grab(Window win, u_int mask, KeySym keysym) -{ - KeyCode code; - u_int i; - - code = XKeysymToKeycode(X_Dpy, keysym); - if ((XkbKeycodeToKeysym(X_Dpy, code, 0, 0) != keysym) && - (XkbKeycodeToKeysym(X_Dpy, code, 0, 1) == keysym)) - mask |= ShiftMask; - - for (i = 0; i < nitems(ign_mods); i++) - XGrabKey(X_Dpy, code, (mask | ign_mods[i]), win, - True, GrabModeAsync, GrabModeAsync); -} - int xu_getprop(Window win, Atom atm, Atom type, long len, unsigned char **p) { |