version 1.26, 2015/08/28 13:26:41 |
version 1.27, 2015/08/28 15:51:48 |
|
|
|
|
#include "tmux.h" |
#include "tmux.h" |
|
|
void window_name_callback(unused int, unused short, void *); |
|
|
|
void |
void |
queue_window_name(struct window *w) |
check_window_name(struct window *w) |
{ |
{ |
struct timeval tv; |
char *name; |
|
|
tv.tv_sec = 0; |
|
tv.tv_usec = NAME_INTERVAL * 1000L; |
|
|
|
if (event_initialized(&w->name_timer)) |
|
evtimer_del(&w->name_timer); |
|
evtimer_set(&w->name_timer, window_name_callback, w); |
|
evtimer_add(&w->name_timer, &tv); |
|
} |
|
|
|
void |
|
window_name_callback(unused int fd, unused short events, void *data) |
|
{ |
|
struct window *w = data; |
|
char *name; |
|
|
|
if (w->active == NULL) |
if (w->active == NULL) |
return; |
return; |
|
|
if (!options_get_number(&w->options, "automatic-rename")) { |
if (!options_get_number(&w->options, "automatic-rename")) |
if (event_initialized(&w->name_timer)) |
|
event_del(&w->name_timer); |
|
return; |
return; |
} |
|
queue_window_name(w); |
|
|
|
if (~w->active->flags & PANE_CHANGED) |
if (~w->active->flags & PANE_CHANGED) |
return; |
return; |
|
|
|
|
name = format_window_name(w); |
name = format_window_name(w); |
if (strcmp(name, w->name) != 0) { |
if (strcmp(name, w->name) != 0) { |
|
log_debug("@%u new name %s (was %s)", w->id, name, w->name); |
window_set_name(w, name); |
window_set_name(w, name); |
server_status_window(w); |
server_status_window(w); |
} |
} else |
|
log_debug("@%u name not changed (still %s)", w->id, w->name); |
|
|
free(name); |
free(name); |
} |
} |
|
|