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); }