Sync OpenBSD patchset 1091:

Do not fire name timer when automatic-rename is off, from Tim Ruehsen a
while ago.
This commit is contained in:
Tiago Cunha 2012-04-10 09:57:08 +00:00
parent 14e5cdf02e
commit ce67a44a94
3 changed files with 16 additions and 5 deletions

View File

@ -87,6 +87,7 @@ cmd_set_option_exec(struct cmd *self, struct cmd_ctx *ctx)
struct winlink *wl; struct winlink *wl;
struct client *c; struct client *c;
struct options *oo; struct options *oo;
struct window *w;
const char *optstr, *valstr; const char *optstr, *valstr;
u_int i; u_int i;
@ -147,6 +148,18 @@ cmd_set_option_exec(struct cmd *self, struct cmd_ctx *ctx)
return (-1); return (-1);
} }
/* Start or stop timers when automatic-rename changed. */
if (strcmp (oe->name, "automatic-rename") == 0) {
for (i = 0; i < ARRAY_LENGTH(&windows); i++) {
if ((w = ARRAY_ITEM(&windows, i)) == NULL)
continue;
if (options_get_number(&w->options, "automatic-rename"))
queue_window_name(w);
else if (event_initialized(&w->name_timer))
evtimer_del(&w->name_timer);
}
}
/* Update sizes and redraw. May not need it but meh. */ /* Update sizes and redraw. May not need it but meh. */
recalculate_sizes(); recalculate_sizes();
for (i = 0; i < ARRAY_LENGTH(&clients); i++) { for (i = 0; i < ARRAY_LENGTH(&clients); i++) {

View File

@ -49,9 +49,7 @@ window_name_callback(unused int fd, unused short events, void *data)
struct window *w = data; struct window *w = data;
char *name, *wname; char *name, *wname;
queue_window_name(w); /* XXX even if the option is off? */ queue_window_name(w); /* stopped when option turned off */
if (!options_get_number(&w->options, "automatic-rename"))
return;
if (w->active->screen != &w->active->base) if (w->active->screen != &w->active->base)
name = NULL; name = NULL;

View File

@ -294,9 +294,9 @@ window_create1(u_int sx, u_int sy)
w->sx = sx; w->sx = sx;
w->sy = sy; w->sy = sy;
queue_window_name(w);
options_init(&w->options, &global_w_options); options_init(&w->options, &global_w_options);
if (options_get_number(&w->options, "automatic-rename"))
queue_window_name(w);
for (i = 0; i < ARRAY_LENGTH(&windows); i++) { for (i = 0; i < ARRAY_LENGTH(&windows); i++) {
if (ARRAY_ITEM(&windows, i) == NULL) { if (ARRAY_ITEM(&windows, i) == NULL) {