- 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 (istate.active) {
+ if ((e->type == KeyRelease && !(istate.state & e->xkey.state))) {
+ done = TRUE;
+ handled = 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;
+ handled = TRUE;
+ }
+ } else if (e->type == ButtonPress) {
+ cancel = TRUE;
+ done = TRUE;
+ handled = FALSE;
+ }