X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fkeyboard.c;h=bf8d63ae972313cd8c35df2b04f89825536a4c62;hb=75c63eece530871664cedb11ff348945643fcaa2;hp=bee264f6f56f05efb71d7fc25f4bbed7cc9d09aa;hpb=34b89d8f71f5546a3e0fa523e4bf35a0f0d59a80;p=chaz%2Fopenbox diff --git a/openbox/keyboard.c b/openbox/keyboard.c index bee264f6..bf8d63ae 100644 --- a/openbox/keyboard.c +++ b/openbox/keyboard.c @@ -240,22 +240,24 @@ gboolean keyboard_process_interactive_grab(const XEvent *e, ObClient **client) gboolean done = FALSE; gboolean cancel = FALSE; - if ((e->type == KeyRelease && !(istate.state & e->xkey.state))) - done = TRUE; - else if (e->type == KeyPress) { - /*if (e->xkey.keycode == ob_keycode(OB_KEY_RETURN)) - done = TRUE; - else */if (e->xkey.keycode == ob_keycode(OB_KEY_ESCAPE)) - cancel = done = TRUE; - } else if (e->type == ButtonPress) - cancel = done = TRUE; - - if (done) { - keyboard_interactive_end(e->xkey.state, cancel, e->xkey.time, TRUE); - - handled = TRUE; - } else - *client = istate.client; + if (istate.active) { + if ((e->type == KeyRelease && !(istate.state & e->xkey.state))) + done = TRUE; + else if (e->type == KeyPress) { + /*if (e->xkey.keycode == ob_keycode(OB_KEY_RETURN)) + done = TRUE; + else */if (e->xkey.keycode == ob_keycode(OB_KEY_ESCAPE)) + cancel = done = TRUE; + } else if (e->type == ButtonPress) + cancel = done = TRUE; + + if (done) { + keyboard_interactive_end(e->xkey.state, cancel, e->xkey.time,TRUE); + + handled = TRUE; + } else + *client = istate.client; + } return handled; } @@ -324,12 +326,10 @@ void keyboard_startup(gboolean reconfig) void keyboard_shutdown(gboolean reconfig) { - GSList *it; - if (!reconfig) client_remove_destructor(keyboard_interactive_end_client); - istate.active = FALSE; + keyboard_interactive_end(0, TRUE, 0, TRUE); ob_main_loop_timeout_remove(ob_main_loop, chain_timeout);