Only emit one call to put_status in focus_node

This commit is contained in:
Bastien Dejean 2013-06-05 16:14:53 +02:00
parent fee7d5146c
commit 6296eebd13
2 changed files with 15 additions and 13 deletions

View file

@ -293,6 +293,7 @@ void process_message(char *msg, char *rsp)
focus_node(m, m->desk, m->desk->focus);
}
}
return;
} else if (strcmp(cmd, "use") == 0) {
char *name = strtok(NULL, TOK_SEP);
if (name != NULL) {
@ -304,6 +305,7 @@ void process_message(char *msg, char *rsp)
focus_node(loc.monitor, loc.desktop, loc.desktop->focus);
}
}
return;
} else if (strcmp(cmd, "cycle_monitor") == 0) {
char *dir = strtok(NULL, TOK_SEP);
if (dir != NULL) {
@ -442,21 +444,20 @@ void process_message(char *msg, char *rsp)
if (name != NULL) {
monitor_t *m = find_monitor(name);
if (m != NULL && m != mon) {
char *opt = strtok(NULL, TOK_SEP);
send_option_t o;
if (!parse_send_option(opt, &o))
return;
desktop_t *d = mon->desk;
desktop_hide(d);
transfer_desktop(mon, m, d);
desktop_show(mon->desk);
char *opt = strtok(NULL, TOK_SEP);
send_option_t o;
if (parse_send_option(opt, &o)) {
if (o == SEND_OPTION_FOLLOW) {
arrange(m, d);
focus_node(m, d, d->focus);
} else if (o == SEND_OPTION_DONT_FOLLOW) {
update_current();
}
if (o == SEND_OPTION_FOLLOW) {
arrange(m, d);
focus_node(m, d, d->focus);
} else if (o == SEND_OPTION_DONT_FOLLOW) {
update_current();
}
}
}
return;

7
tree.c
View file

@ -552,7 +552,10 @@ void focus_node(monitor_t *m, desktop_t *d, node_t *n)
window_draw_border(n, true, true);
}
select_desktop(m, d);
if (mon != m || m->desk != d) {
select_desktop(m, d);
put_status();
}
if (n == NULL) {
ewmh_update_active_window();
@ -764,7 +767,6 @@ void select_monitor(monitor_t *m)
mon = m;
ewmh_update_current_desktop();
put_status();
}
void select_desktop(monitor_t *m, desktop_t *d)
@ -785,7 +787,6 @@ void select_desktop(monitor_t *m, desktop_t *d)
mon->desk = d;
ewmh_update_current_desktop();
put_status();
}
void cycle_monitor(cycle_dir_t dir)