X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fkeyboard.c;h=84ae2a38e2d25f7eac85b6c4f74644502b2c1641;hb=65d50861ada11f5409680de285f461f16e78c090;hp=f6fe64e6018927bf27a7010032ea20bde9b63fb6;hpb=c54cb4a83cbbe741a21c6a6cd468ef45a5537a85;p=chaz%2Fopenbox diff --git a/openbox/keyboard.c b/openbox/keyboard.c index f6fe64e6..84ae2a38 100644 --- a/openbox/keyboard.c +++ b/openbox/keyboard.c @@ -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; }