X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fkeyboard.c;h=513b6e1e30785dd2a63f7d9a2ea531ad66fe81d2;hb=f4979de3f5257bf70591d4ccf0ecab7da567b27d;hp=607941dda3d643497d25260fa7510b463297493f;hpb=c90da6da781932c2d178bfb7e39ec1d5003543b7;p=chaz%2Fopenbox diff --git a/openbox/keyboard.c b/openbox/keyboard.c index 607941dd..513b6e1e 100644 --- a/openbox/keyboard.c +++ b/openbox/keyboard.c @@ -127,47 +127,47 @@ gboolean keyboard_process_interactive_grab(const XEvent *e, if (interactive_grab) { *client = grabbed_client; *context = grabbed_context; - } - if ((e->type == KeyRelease && - !(grabbed_state & e->xkey.state))) - done = TRUE; - else if (e->type == KeyPress) { - if (e->xkey.keycode == ob_keycode(OB_KEY_RETURN)) + if ((e->type == KeyRelease && + !(grabbed_state & e->xkey.state))) done = TRUE; - else if (e->xkey.keycode == ob_keycode(OB_KEY_ESCAPE)) { + 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)) { + if (grabbed_action->func == action_cycle_windows) { + grabbed_action->data.cycle.cancel = TRUE; + } + if (grabbed_action->func == action_desktop_dir) { + grabbed_action->data.desktopdir.cancel = TRUE; + } + if (grabbed_action->func == action_send_to_desktop_dir) + { + grabbed_action->data.sendtodir.cancel = TRUE; + } + done = TRUE; + } + } + if (done) { if (grabbed_action->func == action_cycle_windows) { - grabbed_action->data.cycle.cancel = TRUE; + grabbed_action->data.cycle.final = TRUE; } if (grabbed_action->func == action_desktop_dir) { - grabbed_action->data.desktopdir.cancel = TRUE; + grabbed_action->data.desktopdir.final = TRUE; } - if (grabbed_action->func == action_send_to_desktop_dir) - { - grabbed_action->data.sendtodir.cancel = TRUE; + if (grabbed_action->func == action_send_to_desktop_dir) { + grabbed_action->data.sendtodir.final = TRUE; } - done = TRUE; - } - } - if (done) { - if (grabbed_action->func == action_cycle_windows) { - grabbed_action->data.cycle.final = TRUE; - } - if (grabbed_action->func == action_desktop_dir) { - grabbed_action->data.desktopdir.final = TRUE; - } - if (grabbed_action->func == action_send_to_desktop_dir) { - grabbed_action->data.sendtodir.final = TRUE; - } - grabbed_action->func(&grabbed_action->data); + grabbed_action->func(&grabbed_action->data); - interactive_grab = FALSE; - grab_keyboard(FALSE); - grab_pointer(FALSE, None); - keyboard_reset_chains(); + interactive_grab = FALSE; + grab_keyboard(FALSE); + grab_pointer(FALSE, None); + keyboard_reset_chains(); - handled = TRUE; + handled = TRUE; + } } return handled;