all repos — openbox @ 838f76cd216aaadce186ab5dd4302845d89dd2f8

openbox fork - make it a bit more like ryudo

use the grab_server function
Dana Jansens danakj@orodu.net
commit

838f76cd216aaadce186ab5dd4302845d89dd2f8

parent

7d215bd255d0744101b9ceb52c235bdc985fa034

1 files changed, 7 insertions(+), 12 deletions(-)

jump to
M plugins/keyboard/keyboard.cplugins/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);