summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Langasek <steve.langasek@canonical.com>2010-03-29 11:51:24 +0100
committerCharlie Brej <cbrej@cs.man.ac.uk>2010-03-29 11:51:24 +0100
commit02ca382344d46fd8f8654588ddcb8e3d25c68e7a (patch)
tree3ebe7f0d0dd501b52264ec15f28de01d2bcc3a7c
parent991549626b61a6dc4faee184d7e327c5be07ba37 (diff)
[main] Watch-for-keystroke should also be sensitive to enter
Because enter and general keystrokes are handled separately, enter would not activate the keystroke trigger. Now, you can watch specifically for an enter press, and enter is accepted as a general any-key trigger.
-rw-r--r--src/main.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
index e560462e..d3d670dd 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1182,6 +1182,22 @@ on_enter (state_t *state,
free (entry_trigger);
update_display (state);
}
+ else
+ {
+ for (node = ply_list_get_first_node (state->keystroke_triggers); node;
+ node = ply_list_get_next_node (state->keystroke_triggers, node))
+ {
+ ply_keystroke_watch_t* keystroke_trigger = ply_list_node_get_data (node);
+ if (!keystroke_trigger->keys || strstr(keystroke_trigger->keys, "\n")) /* assume strstr works on utf8 arrays */
+ {
+ ply_trigger_pull (keystroke_trigger->trigger, line);
+ ply_list_remove_node (state->keystroke_triggers, node);
+ free(keystroke_trigger);
+ return;
+ }
+ }
+ return;
+ }
}
static void