summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2024-04-10 10:01:13 +0100
committerThomas Adam <thomas@xteddy.org>2024-04-10 10:01:13 +0100
commit43530d4397f94beed27acb8f5610338b6dbcc05a (patch)
tree2bcadaad156d73255a1167a4d00fcf6a4371ce21
parent4bb6da75bada96b3fa5086487ad0f241dea874bb (diff)
parent553d4cba794b4f81dd42ba139f8dfb54fcd13c16 (diff)
Merge branch 'obsd-master'HEADmaster
-rw-r--r--input.c4
-rw-r--r--options-table.c8
-rw-r--r--server-client.c7
-rw-r--r--tmux.16
-rw-r--r--tmux.h2
-rw-r--r--window.c2
6 files changed, 25 insertions, 4 deletions
diff --git a/input.c b/input.c
index e6016121..d375ea2d 100644
--- a/input.c
+++ b/input.c
@@ -2372,7 +2372,9 @@ input_exit_osc(struct input_ctx *ictx)
switch (option) {
case 0:
case 2:
- if (screen_set_title(sctx->s, p) && wp != NULL) {
+ if (wp != NULL &&
+ options_get_number(wp->options, "allow-set-title") &&
+ screen_set_title(sctx->s, p)) {
notify_pane("pane-title-changed", wp);
server_redraw_window_borders(wp->window);
server_status_window(wp->window);
diff --git a/options-table.c b/options-table.c
index 15018226..782ce17e 100644
--- a/options-table.c
+++ b/options-table.c
@@ -875,6 +875,14 @@ const struct options_table_entry options_table[] = {
"to rename windows."
},
+ { .name = "allow-set-title",
+ .type = OPTIONS_TABLE_FLAG,
+ .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
+ .default_num = 1,
+ .text = "Whether applications are allowed to use the escape sequence "
+ "to set the pane title."
+ },
+
{ .name = "alternate-screen",
.type = OPTIONS_TABLE_FLAG,
.scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
diff --git a/server-client.c b/server-client.c
index a7494503..449a9bcc 100644
--- a/server-client.c
+++ b/server-client.c
@@ -622,6 +622,8 @@ server_client_check_mouse(struct client *c, struct key_event *event)
} else if (MOUSE_RELEASE(m->b)) {
type = UP;
x = m->x, y = m->y, b = m->lb;
+ if (m->sgr_type == 'm')
+ b = m->sgr_b;
log_debug("up at %u,%u", x, y);
} else {
if (c->flags & CLIENT_DOUBLECLICK) {
@@ -642,7 +644,10 @@ server_client_check_mouse(struct client *c, struct key_event *event)
log_debug("triple-click at %u,%u", x, y);
goto have_event;
}
- } else {
+ }
+
+ /* DOWN is the only remaining event type. */
+ if (type == NOTYPE) {
type = DOWN;
x = m->x, y = m->y, b = m->b;
log_debug("down at %u,%u", x, y);
diff --git a/tmux.1 b/tmux.1
index fbb94644..b73efdd6 100644
--- a/tmux.1
+++ b/tmux.1
@@ -4752,6 +4752,12 @@ they will be allowed even if the pane is invisible.
Allow programs in the pane to change the window name using a terminal escape
sequence (\eek...\ee\e\e).
.Pp
+.It Xo Ic allow-set-title
+.Op Ic on | off
+.Xc
+Allow programs in the pane to change the title using the terminal escape
+sequences (\ee]2;...\ee\e\e or \ee]0;...\ee\e\e).
+.Pp
.It Xo Ic alternate-screen
.Op Ic on | off
.Xc
diff --git a/tmux.h b/tmux.h
index 7671cca0..a052b799 100644
--- a/tmux.h
+++ b/tmux.h
@@ -877,7 +877,7 @@ struct screen_sel;
struct screen_titles;
struct screen {
char *title;
- char *path;
+ char *path;
struct screen_titles *titles;
struct grid *grid; /* grid data */
diff --git a/window.c b/window.c
index 69a42ab7..7b0d9a4c 100644
--- a/window.c
+++ b/window.c
@@ -481,7 +481,7 @@ window_pane_update_focus(struct window_pane *wp)
struct client *c;
int focused = 0;
- if (wp != NULL) {
+ if (wp != NULL && (~wp->flags & PANE_EXITED)) {
if (wp != wp->window->active)
focused = 0;
else {