diff options
author | Hiltjo Posthuma <hiltjo@codemadness.org> | 2022-01-21 20:20:01 +0100 |
---|---|---|
committer | Hiltjo Posthuma <hiltjo@codemadness.org> | 2022-01-22 12:15:57 +0100 |
commit | f726178a4c61037da62f7dfd0c20b23a3675d6ac (patch) | |
tree | 2353116f3bd6c15b2f2fb88ea3f3926e4534d03c /sfeed_curses.c | |
parent | 1d6b7c5d3f09ec2118400207b81b1332f1ee319a (diff) |
add feature to go to the next bold row and previous bold row with J and K
This replaces the current J and K keybind, which was rarely useful.
Thanks to IanJ for the suggestion and feedback!
Diffstat (limited to 'sfeed_curses.c')
-rw-r--r-- | sfeed_curses.c | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/sfeed_curses.c b/sfeed_curses.c index d6eb4f7..0cd7ebd 100644 --- a/sfeed_curses.c +++ b/sfeed_curses.c @@ -2125,17 +2125,11 @@ main(int argc, char *argv[]) break; keyup: case 'k': - case 'K': pane_scrolln(&panes[selpane], -1); - if (ch == 'K') - goto openitem; break; keydown: case 'j': - case 'J': pane_scrolln(&panes[selpane], +1); - if (ch == 'J') - goto openitem; break; keyleft: case 'h': @@ -2153,6 +2147,28 @@ keyright: if (layout == LayoutMonocle) updategeom(); break; + case 'K': + p = &panes[selpane]; + if (!p->nrows) + break; + for (pos = p->pos - 1; pos >= 0; pos--) { + if ((row = pane_row_get(p, pos)) && row->bold) { + pane_setpos(p, pos); + break; + } + } + break; + case 'J': + p = &panes[selpane]; + if (!p->nrows) + break; + for (pos = p->pos + 1; pos < p->nrows; pos++) { + if ((row = pane_row_get(p, pos)) && row->bold) { + pane_setpos(p, pos); + break; + } + } + break; case '\t': selpane = selpane == PaneFeeds ? PaneItems : PaneFeeds; if (layout == LayoutMonocle) @@ -2260,7 +2276,6 @@ nextpage: break; case 'o': /* feeds: load, items: plumb URL */ case '\n': -openitem: if (selpane == PaneFeeds && panes[selpane].nrows) feed_open_selected(&panes[selpane]); else if (selpane == PaneItems && panes[selpane].nrows) |