commit 48fcc5120f87139d1a23de231cfabc056bde12cd from: Stefan Sperling date: Sat Aug 18 10:58:37 2018 UTC allow switching between open tog views with TAB commit - e5a0f69f558eebfc5ff9c994a48dc1dda2ba8b86 commit + 48fcc5120f87139d1a23de231cfabc056bde12cd blob - cab4c27a9b5f22859bb24cea712e3fc2fc4a2ad9 blob + 96401a7bddaa9994c55d144582c988b4f1ae09f2 --- tog/tog.c +++ tog/tog.c @@ -338,9 +338,12 @@ view_resize(struct tog_view *view) } static const struct got_error * -view_input(struct tog_view **new, struct tog_view **dead, struct tog_view *view) +view_input(struct tog_view **new, struct tog_view **dead, + struct tog_view **focus, struct tog_view *view, + struct tog_view_list_head *views) { const struct got_error *err = NULL; + struct tog_view *next; int ch; *new = NULL; @@ -351,6 +354,13 @@ view_input(struct tog_view **new, struct tog_view **de nodelay(stdscr, TRUE); switch (ch) { case ERR: + break; + case '\t': + next = TAILQ_NEXT(view, entry); + if (next) + *focus = next; + else + *focus = TAILQ_FIRST(views); break; case 'q': err = view->input(new, dead, view, ch); @@ -384,7 +394,7 @@ view_loop(struct tog_view *view) err = view_show(view); if (err) break; - err = view_input(&new_view, &dead_view, view); + err = view_input(&new_view, &dead_view, &view, view, &views); if (err) break; if (new_view) {