use the grab_server function
Dana Jansens danakj@orodu.net
1 files changed,
7 insertions(+),
12 deletions(-)
jump to
M
plugins/keyboard/keyboard.c
→
plugins/keyboard/keyboard.c
@@ -1,6 +1,7 @@
#include "../../kernel/focus.h" #include "../../kernel/dispatch.h" #include "../../kernel/openbox.h" +#include "../../kernel/grab.h" #include "../../kernel/action.h" #include "tree.h" #include "keyboard.h"@@ -33,7 +34,7 @@ /* XXX kill timer */
curpos = NULL; if (grabbed) { grabbed = FALSE; - XUngrabKeyboard(ob_display, CurrentTime); + grab_server(FALSE); } }@@ -69,8 +70,7 @@ return FALSE;
} /* grab the server here to make sure no key pressed go missed */ - XGrabServer(ob_display); - XSync(ob_display, FALSE); + grab_server(TRUE); grab_keys(FALSE);@@ -88,8 +88,7 @@ tree_assimilate(tree); /* assimilation destroys/uses the tree */
grab_keys(TRUE); - XUngrabServer(ob_display); - XFlush(ob_display); + grab_server(FALSE); return TRUE; }@@ -112,15 +111,11 @@ p->state == e->data.x.e->xkey.state) {
if (p->first_child != NULL) { /* part of a chain */ /* XXX TIMER */ if (!grabbed) { - /*grab should never fail because we should have a - sync grab at this point */ - XGrabKeyboard(ob_display, ob_root, 0, - GrabModeAsync, GrabModeSync, - CurrentTime); + grab_server(TRUE); + grabbed = TRUE; + XAllowEvents(ob_display, AsyncKeyboard, CurrentTime); } - grabbed = TRUE; curpos = p; - XAllowEvents(ob_display, AsyncKeyboard, CurrentTime); } else { keyaction_do(&p->action, focus_client);