Clean bars before reloading the config (+test)

While the configuration gets updated in i3, the i3bar processes will not pick
up these changes. We have to think about a good way to do that.
This commit is contained in:
Michael Stapelberg
2011-10-20 18:47:09 +01:00
parent a5be27cb79
commit ad0f13a0a9
2 changed files with 34 additions and 0 deletions

View File

@ -295,6 +295,32 @@ void load_configuration(xcb_connection_t *conn, const char *override_configpath,
FREE(assign);
}
/* Clear bar configs */
Barconfig *barconfig;
while (!TAILQ_EMPTY(&barconfigs)) {
barconfig = TAILQ_FIRST(&barconfigs);
FREE(barconfig->id);
for (int c = 0; c < barconfig->num_outputs; c++)
free(barconfig->outputs[c]);
FREE(barconfig->outputs);
FREE(barconfig->tray_output);
FREE(barconfig->socket_path);
FREE(barconfig->status_command);
FREE(barconfig->font);
FREE(barconfig->colors.background);
FREE(barconfig->colors.statusline);
FREE(barconfig->colors.focused_workspace_text);
FREE(barconfig->colors.focused_workspace_bg);
FREE(barconfig->colors.active_workspace_text);
FREE(barconfig->colors.active_workspace_bg);
FREE(barconfig->colors.inactive_workspace_text);
FREE(barconfig->colors.inactive_workspace_bg);
FREE(barconfig->colors.urgent_workspace_text);
FREE(barconfig->colors.urgent_workspace_bg);
TAILQ_REMOVE(&barconfigs, barconfig, configs);
FREE(barconfig);
}
/* Clear workspace names */
#if 0
Workspace *ws;