summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2022-02-22 14:01:10 +0000
committerThomas Adam <thomas@xteddy.org>2022-02-22 14:01:10 +0000
commit2be54886932e6214dfd67ba0b6d8c21fdaff4409 (patch)
tree9a5b87c33a0239640c98b11a38bd30d57143f593
parent88d9a8fc053a6653c78211690e5796c601bdba01 (diff)
parentfa71e9a07911715da596d618fe045943337c596b (diff)
Merge branch 'obsd-master' into master
-rw-r--r--format-draw.c6
-rw-r--r--format.c10
-rw-r--r--popup.c2
-rw-r--r--session.c2
-rw-r--r--tmux.16
-rw-r--r--tmux.h1
6 files changed, 22 insertions, 5 deletions
diff --git a/format-draw.c b/format-draw.c
index 1110535f..1a7e60b3 100644
--- a/format-draw.c
+++ b/format-draw.c
@@ -1154,13 +1154,13 @@ format_trim_right(const char *expanded, u_int limit)
while (*cp != '\0') {
if (*cp == '#') {
end = format_leading_hashes(cp, &n, &leading_width);
+ copy_width = leading_width;
if (width <= skip) {
- if (skip - width >= leading_width)
+ if (skip - width >= copy_width)
copy_width = 0;
else
copy_width -= (skip - width);
- } else
- copy_width = leading_width;
+ }
if (copy_width != 0) {
if (n == 1)
*out++ = '#';
diff --git a/format.c b/format.c
index 2fc0961e..5c6eed36 100644
--- a/format.c
+++ b/format.c
@@ -1650,6 +1650,13 @@ format_cb_mouse_y(struct format_tree *ft)
return (NULL);
}
+/* Callback for next_session_id. */
+static void *
+format_cb_next_session_id(__unused struct format_tree *ft)
+{
+ return (format_printf("$%u", next_session_id));
+}
+
/* Callback for origin_flag. */
static void *
format_cb_origin_flag(struct format_tree *ft)
@@ -2707,6 +2714,9 @@ static const struct format_table_entry format_table[] = {
{ "mouse_y", FORMAT_TABLE_STRING,
format_cb_mouse_y
},
+ { "next_session_id", FORMAT_TABLE_STRING,
+ format_cb_next_session_id
+ },
{ "origin_flag", FORMAT_TABLE_STRING,
format_cb_origin_flag
},
diff --git a/popup.c b/popup.c
index 5522df3e..2e57153d 100644
--- a/popup.c
+++ b/popup.c
@@ -689,7 +689,7 @@ popup_display(int flags, enum box_lines lines, struct cmdq_item *item, u_int px,
}
pd->border_cell.attr = 0;
- screen_init(&pd->s, sx - 2, sy - 2, 0);
+ screen_init(&pd->s, jx, jy, 0);
colour_palette_init(&pd->palette);
colour_palette_from_option(&pd->palette, global_w_options);
diff --git a/session.c b/session.c
index f30f6a61..d9d9c486 100644
--- a/session.c
+++ b/session.c
@@ -27,7 +27,7 @@
#include "tmux.h"
struct sessions sessions;
-static u_int next_session_id;
+u_int next_session_id;
struct session_groups session_groups = RB_INITIALIZER(&session_groups);
static void session_free(int, short, void *);
diff --git a/tmux.1 b/tmux.1
index 2128f81a..1837e248 100644
--- a/tmux.1
+++ b/tmux.1
@@ -4592,6 +4592,11 @@ Run when a session is renamed.
Run when a window is linked into a session.
.It window-renamed
Run when a window is renamed.
+.It window-resized
+Run when a window is resized.
+This may be after the
+.Ar client-resized
+hook is run.
.It window-unlinked
Run when a window is unlinked from a session.
.El
@@ -5096,6 +5101,7 @@ The following variables are available, where appropriate:
.It Li "mouse_word" Ta "" Ta "Word under mouse, if any"
.It Li "mouse_x" Ta "" Ta "Mouse X position, if any"
.It Li "mouse_y" Ta "" Ta "Mouse Y position, if any"
+.It Li "next_session_id" Ta "" Ta "Unique session ID for next new session"
.It Li "origin_flag" Ta "" Ta "Pane origin flag"
.It Li "pane_active" Ta "" Ta "1 if active pane"
.It Li "pane_at_bottom" Ta "" Ta "1 if pane is at the bottom of window"
diff --git a/tmux.h b/tmux.h
index f172ba1a..7eccaa55 100644
--- a/tmux.h
+++ b/tmux.h
@@ -3119,6 +3119,7 @@ void control_notify_session_window_changed(struct session *);
/* session.c */
extern struct sessions sessions;
+extern u_int next_session_id;
int session_cmp(struct session *, struct session *);
RB_PROTOTYPE(sessions, session, entry, session_cmp);
int session_alive(struct session *);