]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
[main] Watch-for-keystroke should also be sensitive to enter
authorSteve Langasek <steve.langasek@canonical.com>
Mon, 29 Mar 2010 10:51:24 +0000 (11:51 +0100)
committerCharlie Brej <cbrej@cs.man.ac.uk>
Mon, 29 Mar 2010 10:51:24 +0000 (11:51 +0100)
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.

src/main.c

index e560462ea17d6b98e74f9fb95c85e3faf4f35b9a..d3d670dd55da06b68172c114cea3299c1bc98e67 100644 (file)
@@ -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