summary refs log tree commit diff
path: root/menu.c
diff options
context:
space:
mode:
authorokan <okan>2016-09-30 18:28:06 +0000
committerokan <okan>2016-09-30 18:28:06 +0000
commit2d8f621b8d285b1cf8e29feb383fa2268e57ee5a (patch)
tree411cf317c0c58cf39c2503d99c89913d6ee3c11d /menu.c
parent8b26a43bf17b3834de3127408e7274e8effc9beb (diff)
downloadcwm-2d8f621b8d285b1cf8e29feb383fa2268e57ee5a.tar.gz
cwm-2d8f621b8d285b1cf8e29feb383fa2268e57ee5a.tar.xz
cwm-2d8f621b8d285b1cf8e29feb383fa2268e57ee5a.zip
Use instinsic X11 functions for key/btn/ptr grab/ungrab/regrab requests;
the one line wrappers provided no value and limited altering calls where
needed; additionally, most of them had but one caller.
Diffstat (limited to 'menu.c')
-rw-r--r--menu.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/menu.c b/menu.c
index 80197b9..c3a4f9d 100644
--- a/menu.c
+++ b/menu.c
@@ -121,10 +121,12 @@ menu_filter(struct screen_ctx *sc, struct menu_q *menuq, const char *prompt,
 	XSelectInput(X_Dpy, sc->menu.win, evmask);
 	XMapRaised(X_Dpy, sc->menu.win);
 
-	if (xu_ptr_grab(sc->menu.win, MENUGRABMASK,
-	    Conf.cursor[CF_QUESTION]) < 0) {
+	if (XGrabPointer(X_Dpy, sc->menu.win, False, MENUGRABMASK,
+	    GrabModeAsync, GrabModeAsync, None, Conf.cursor[CF_QUESTION],
+	    CurrentTime) != GrabSuccess) {
 		XUnmapWindow(X_Dpy, sc->menu.win);
 		return(NULL);
+
 	}
 
 	XGetInputFocus(X_Dpy, &focuswin, &focusrevert);
@@ -172,7 +174,7 @@ out:
 	xu_ptr_getpos(sc->rootwin, &xcur, &ycur);
 	if (xcur == mc.geom.x && ycur == mc.geom.y)
 		xu_ptr_setpos(sc->rootwin, xsave, ysave);
-	xu_ptr_ungrab();
+	XUngrabPointer(X_Dpy, CurrentTime);
 
 	XMoveResizeWindow(X_Dpy, sc->menu.win, 0, 0, 1, 1);
 	XUnmapWindow(X_Dpy, sc->menu.win);
@@ -472,10 +474,13 @@ menu_handle_move(XEvent *e, struct menu_ctx *mc, struct menu_q *resultq)
 	if (mc->prev != -1)
 		menu_draw_entry(mc, resultq, mc->prev, 0);
 	if (mc->entry != -1) {
-		(void)xu_ptr_regrab(MENUGRABMASK, Conf.cursor[CF_NORMAL]);
+		XChangeActivePointerGrab(X_Dpy, MENUGRABMASK,
+		    Conf.cursor[CF_NORMAL], CurrentTime);
 		menu_draw_entry(mc, resultq, mc->entry, 1);
-	} else
-		(void)xu_ptr_regrab(MENUGRABMASK, Conf.cursor[CF_DEFAULT]);
+	} else {
+		XChangeActivePointerGrab(X_Dpy, MENUGRABMASK,
+		    Conf.cursor[CF_DEFAULT], CurrentTime);
+	}
 }
 
 static struct menu *