aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornicm <nicm>2015-08-28 07:49:24 +0000
committernicm <nicm>2015-08-28 07:49:24 +0000
commitfc58e44f89b876aa051f849361bc215c1f965696 (patch)
treeecdd2b832cde3428dc62ac3c98ff8cf96062dec1
parent2ffbd5b5f05dded1564ba32a6a00b0b417439b2f (diff)
downloadrtmux-fc58e44f89b876aa051f849361bc215c1f965696.tar.gz
rtmux-fc58e44f89b876aa051f849361bc215c1f965696.tar.bz2
rtmux-fc58e44f89b876aa051f849361bc215c1f965696.zip
Only do the automatic-rename dance if the pane has changed (seen output,
or new active pane).
-rw-r--r--input.c2
-rw-r--r--names.c4
-rw-r--r--tmux.h1
-rw-r--r--window.c1
4 files changed, 8 insertions, 0 deletions
diff --git a/input.c b/input.c
index 7a334810..7ec35c88 100644
--- a/input.c
+++ b/input.c
@@ -844,6 +844,8 @@ input_parse(struct window_pane *wp)
if (EVBUFFER_LENGTH(evb) == 0)
return;
+ wp->flags |= PANE_CHANGED;
+
wp->window->flags |= WINDOW_ACTIVITY;
wp->window->flags &= ~WINDOW_SILENCE;
diff --git a/names.c b/names.c
index 1ceb83c0..0a3af903 100644
--- a/names.c
+++ b/names.c
@@ -50,6 +50,10 @@ window_name_callback(unused int fd, unused short events, void *data)
if (w->active == NULL)
return;
+ if (~w->active->flags & PANE_CHANGED)
+ return;
+ w->active->flags &= ~PANE_CHANGED;
+
if (!options_get_number(&w->options, "automatic-rename")) {
if (event_initialized(&w->name_timer))
event_del(&w->name_timer);
diff --git a/tmux.h b/tmux.h
index 0f9cb26e..2d0ccede 100644
--- a/tmux.h
+++ b/tmux.h
@@ -826,6 +826,7 @@ struct window_pane {
#define PANE_RESIZE 0x8
#define PANE_FOCUSPUSH 0x10
#define PANE_INPUTOFF 0x20
+#define PANE_CHANGED 0x40
int argc;
char **argv;
diff --git a/window.c b/window.c
index 6351eff5..395574f7 100644
--- a/window.c
+++ b/window.c
@@ -412,6 +412,7 @@ window_set_active_pane(struct window *w, struct window_pane *wp)
return (1);
}
w->active->active_point = next_active_point++;
+ w->active->flags |= PANE_CHANGED;
return (1);
}