summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 95d7ddc)
raw | patch | inline | side by side (parent: 95d7ddc)
author | Jonas Fonseca <fonseca@diku.dk> | |
Sat, 20 May 2006 15:39:25 +0000 (17:39 +0200) | ||
committer | Jonas Fonseca <fonseca@antimatter.localdomain> | |
Sat, 20 May 2006 15:39:25 +0000 (17:39 +0200) |
This makes it possible to easily switch back to the main (or log) view
by closing the diff view, regardless of whether it is split or full-screen.
Requested-by: Aneesh Kumar <aneesh.kumar@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
by closing the diff view, regardless of whether it is split or full-screen.
Requested-by: Aneesh Kumar <aneesh.kumar@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
tig.c | patch | blob | history |
index 098159330fc27b78fb87143a1e1d36d5d635c5a5..6c49105629212a0bb77a27400933da4006ea6698 100644 (file)
--- a/tig.c
+++ b/tig.c
unsigned long offset; /* Offset of the window top */
unsigned long lineno; /* Current line number */
+ /* If non-NULL, points to the view that opened this view. If this view
+ * is closed tig will switch back to the parent view. */
+ struct view *parent;
+
/* Buffering */
unsigned long lines; /* Total number of lines */
void **line; /* Line index; each line contains user data */
/* Continue loading split views in the background. */
if (!split)
end_update(prev);
+ view->parent = prev;
}
if (view->pipe) {
return TRUE;
case REQ_VIEW_CLOSE:
- if (display[1]) {
- view = display[(current_view + 1) % ARRAY_SIZE(display)];
+ if (view->parent) {
memset(display, 0, sizeof(display));
current_view = 0;
- display[current_view] = view;
+ display[current_view] = view->parent;
+ view->parent = NULL;
resize_display();
redraw_display();
break;
* h::
* Show man page.
* q::
- * Close view if multiple views are open, else quit.
+ * Close view, if multiple views are open it will jump back to the
+ * previous view in the view stack. If it is the last open view it
+ * will quit. Use 'Q' to quit all views at once.
* Enter::
* This key is "context sensitive" depending on what view you are
* currently in. When in log view on a commit line or in the main