simplify cyclepane logic - sfeed_curses - sfeed curses UI (now part of sfeed, development is in sfeed)
(HTM) git clone git://git.codemadness.org/sfeed_curses
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 18bd36ede3a9d2ea2f8dbad50a3ce0858d272584
(DIR) parent d4b43904cf55ed616524e241ae5e4b191e1e22d5
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Wed, 10 Mar 2021 17:18:50 +0100
simplify cyclepane logic
The behaviour of switching panes if the sidebar is hidden is different now. It
will be addressed in an upcoming commit implementing layouts.
Diffstat:
M sfeed_curses.c | 47 +++++--------------------------
1 file changed, 7 insertions(+), 40 deletions(-)
---
(DIR) diff --git a/sfeed_curses.c b/sfeed_curses.c
@@ -816,43 +816,6 @@ pane_draw(struct pane *p)
pane_row_draw(p, y + pos, (y + pos) == p->pos);
}
-/* Cycle visible pane in a direction, but don't cycle back. */
-void
-cyclepanen(int n)
-{
- int i;
-
- if (n < 0) {
- n = -n; /* absolute */
- for (i = selpane; n && i - 1 >= 0; i--) {
- if (panes[i - 1].hidden)
- continue;
- n--;
- selpane = i - 1;
- }
- } else if (n > 0) {
- for (i = selpane; n && i + 1 < LEN(panes); i++) {
- if (panes[i + 1].hidden)
- continue;
- n--;
- selpane = i + 1;
- }
- }
-}
-
-/* Cycle visible panes. */
-void
-cyclepane(void)
-{
- size_t i;
-
- i = selpane;
- cyclepanen(+1);
- /* reached end, cycle back to first most-visible */
- if (i == selpane)
- cyclepanen(-PaneLast);
-}
-
void
updategeom(void)
{
@@ -1952,14 +1915,18 @@ keydown:
break;
keyleft:
case 'h':
- cyclepanen(-1);
+ if (selpane == PaneFeeds)
+ break;
+ selpane = PaneFeeds;
break;
keyright:
case 'l':
- cyclepanen(+1);
+ if (selpane == PaneItems)
+ break;
+ selpane = PaneItems;
break;
case '\t':
- cyclepane();
+ selpane = selpane == PaneFeeds ? PaneItems : PaneFeeds;
break;
startpos:
case 'g':