5 static guint kgrabs, pgrabs, sgrabs;
7 void grab_keyboard(gboolean grab)
11 XGrabKeyboard(ob_display, ob_root, 0, GrabModeAsync, GrabModeSync,
13 } else if (kgrabs > 0) {
15 XUngrabKeyboard(ob_display, CurrentTime);
19 void grab_pointer(gboolean grab, Cursor cur)
23 XGrabPointer(ob_display, ob_root, False, 0, GrabModeAsync,
24 GrabModeAsync, FALSE, cur, CurrentTime);
25 } else if (pgrabs > 0) {
27 XUngrabPointer(ob_display, CurrentTime);
31 void grab_server(gboolean grab)
35 XGrabServer(ob_display);
36 XSync(ob_display, FALSE);
38 } else if (sgrabs > 0) {
40 XUngrabServer(ob_display);
48 kgrabs = pgrabs = sgrabs = 0;
53 while (kgrabs) grab_keyboard(FALSE);
54 while (pgrabs) grab_pointer(FALSE, None);
55 while (sgrabs) grab_server(FALSE);