summaryrefslogtreecommitdiff
path: root/usr.bin/tmux/tmux.h
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@cvs.openbsd.org>2023-07-10 09:24:54 +0000
committerNicholas Marriott <nicm@cvs.openbsd.org>2023-07-10 09:24:54 +0000
commitd4e7c6309aff47663cd8eed6faef2405132f1ee2 (patch)
treed45e4017f4d682d0028c98b00128b2952bc9323c /usr.bin/tmux/tmux.h
parent3b460342ef9f13ab4f04ca82f594845f9bab743f (diff)
Use a stack for last panes line windows, from Thomas Bertschinger in
GitHub issue 3588.
Diffstat (limited to 'usr.bin/tmux/tmux.h')
-rw-r--r--usr.bin/tmux/tmux.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/usr.bin/tmux/tmux.h b/usr.bin/tmux/tmux.h
index d7b50241673..fae976b8cbb 100644
--- a/usr.bin/tmux/tmux.h
+++ b/usr.bin/tmux/tmux.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: tmux.h,v 1.1200 2023/07/03 16:47:43 nicm Exp $ */
+/* $OpenBSD: tmux.h,v 1.1201 2023/07/10 09:24:53 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -1038,7 +1038,7 @@ struct window_pane {
#define PANE_REDRAW 0x1
#define PANE_DROP 0x2
#define PANE_FOCUSED 0x4
-/* 0x8 unused */
+#define PANE_VISITED 0x8
/* 0x10 unused */
/* 0x20 unused */
#define PANE_INPUTOFF 0x40
@@ -1093,7 +1093,8 @@ struct window_pane {
int border_gc_set;
struct grid_cell border_gc;
- TAILQ_ENTRY(window_pane) entry;
+ TAILQ_ENTRY(window_pane) entry; /* link in list of all panes */
+ TAILQ_ENTRY(window_pane) sentry; /* link in list of last visited */
RB_ENTRY(window_pane) tree_entry;
};
TAILQ_HEAD(window_panes, window_pane);
@@ -1114,7 +1115,7 @@ struct window {
struct timeval activity_time;
struct window_pane *active;
- struct window_pane *last;
+ struct window_panes last_panes;
struct window_panes panes;
int lastlayout;
@@ -1167,6 +1168,7 @@ struct winlink {
#define WINLINK_ACTIVITY 0x2
#define WINLINK_SILENCE 0x4
#define WINLINK_ALERTFLAGS (WINLINK_BELL|WINLINK_ACTIVITY|WINLINK_SILENCE)
+#define WINLINK_VISITED 0x8
RB_ENTRY(winlink) entry;
TAILQ_ENTRY(winlink) wentry;
@@ -3041,6 +3043,10 @@ struct window_pane *window_pane_find_up(struct window_pane *);
struct window_pane *window_pane_find_down(struct window_pane *);
struct window_pane *window_pane_find_left(struct window_pane *);
struct window_pane *window_pane_find_right(struct window_pane *);
+void window_pane_stack_push(struct window_panes *,
+ struct window_pane *);
+void window_pane_stack_remove(struct window_panes *,
+ struct window_pane *);
void window_set_name(struct window *, const char *);
void window_add_ref(struct window *, const char *);
void window_remove_ref(struct window *, const char *);