summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rw-r--r--nncmpp.actions2
-rw-r--r--nncmpp.c8
3 files changed, 12 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index b337626..a33f735 100644
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,8 @@ Unreleased
* X11: fixed rendering of overflowing, partially visible list items
+ * Added a "o" binding to select the currently playing song
+
* Added Readline-like M-u, M-l, M-c editor bindings
diff --git a/nncmpp.actions b/nncmpp.actions
index 55db685..1eed3b7 100644
--- a/nncmpp.actions
+++ b/nncmpp.actions
@@ -46,6 +46,8 @@ CENTER_CURSOR, Center the cursor
MOVE_UP, Move selection up
MOVE_DOWN, Move selection down
+GOTO_PLAYING, Go to playing song
+
GOTO_TOP, Go to top
GOTO_BOTTOM, Go to bottom
GOTO_ITEM_PREVIOUS, Go to previous item
diff --git a/nncmpp.c b/nncmpp.c
index 266588d..e05af0b 100644
--- a/nncmpp.c
+++ b/nncmpp.c
@@ -3021,6 +3021,7 @@ g_normal_defaults[] =
{ "C-PageUp", ACTION_TAB_PREVIOUS },
{ "C-PageDown", ACTION_TAB_NEXT },
+ { "o", ACTION_GOTO_PLAYING },
{ "Home", ACTION_GOTO_TOP },
{ "End", ACTION_GOTO_BOTTOM },
{ "M-<", ACTION_GOTO_TOP },
@@ -3343,6 +3344,13 @@ current_tab_on_action (enum action action)
switch (action)
{
const char *id;
+ case ACTION_GOTO_PLAYING:
+ if (g.song < 0 || (size_t) g.song >= tab->item_count)
+ return false;
+
+ tab->item_selected = g.song;
+ app_ensure_selection_visible ();
+ return true;
case ACTION_MOVE_UP:
return current_tab_move_selection (-1);
case ACTION_MOVE_DOWN: