Free ws_assignments on reload

This fixes an unreported bug where deleting a workspace assignment and
reloading the config file would keep the assignment.
next
Orestis Floros 2018-08-09 17:28:05 +03:00
parent 5a54a1ab04
commit 01e971b51e
No known key found for this signature in database
GPG Key ID: E9AD9F32E401E38F
1 changed files with 9 additions and 2 deletions

View File

@ -97,9 +97,8 @@ void load_configuration(xcb_connection_t *conn, const char *override_configpath,
FREE(mode);
}
struct Assignment *assign;
while (!TAILQ_EMPTY(&assignments)) {
assign = TAILQ_FIRST(&assignments);
struct Assignment *assign = TAILQ_FIRST(&assignments);
if (assign->type == A_TO_WORKSPACE || assign->type == A_TO_WORKSPACE_NUMBER)
FREE(assign->dest.workspace);
else if (assign->type == A_COMMAND)
@ -111,6 +110,14 @@ void load_configuration(xcb_connection_t *conn, const char *override_configpath,
FREE(assign);
}
while (!TAILQ_EMPTY(&ws_assignments)) {
struct Workspace_Assignment *assign = TAILQ_FIRST(&ws_assignments);
FREE(assign->name);
FREE(assign->output);
TAILQ_REMOVE(&ws_assignments, assign, ws_assignments);
FREE(assign);
}
/* Clear bar configs */
Barconfig *barconfig;
while (!TAILQ_EMPTY(&barconfigs)) {