X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=inline;f=openbox%2Fkeyboard.c;h=84ae2a38e2d25f7eac85b6c4f74644502b2c1641;hb=775d5da7ade2d184dfcef5c046b8d39f91804f01;hp=f3400fca80b503b9b22a6406caa1d9eaa855dd8f;hpb=636a676c56e357a301b6a4a63e9640cb312b37df;p=chaz%2Fopenbox diff --git a/openbox/keyboard.c b/openbox/keyboard.c index f3400fca..84ae2a38 100644 --- a/openbox/keyboard.c +++ b/openbox/keyboard.c @@ -78,7 +78,7 @@ static gboolean chain_timeout(gpointer data) static void set_curpos(KeyBindingTree *newpos) { - if (curpose != newpos) { + if (curpos != newpos) { grab_keys(FALSE); curpos = newpos; grab_keys(TRUE); @@ -195,14 +195,15 @@ static void keyboard_interactive_end(guint state, gboolean cancel, Time time, g_assert(istate.active); + /* ungrab first so they won't be NotifyWhileGrabbed */ + if (ungrab) + grab_keyboard(FALSE); + alist = g_slist_append(NULL, istate.action); action_run_interactive(alist, istate.client, state, time, cancel, TRUE); g_slist_free(alist); istate.active = FALSE; - - if (ungrab) - grab_keyboard(FALSE); } static void keyboard_interactive_end_client(ObClient *client, gpointer data) @@ -249,7 +250,7 @@ gboolean keyboard_process_interactive_grab(const XEvent *e, ObClient **client) handled = TRUE; } } else if (e->type == ButtonPress) { - cancel = FALSE; + cancel = TRUE; done = TRUE; handled = FALSE; }