adjust the themes for the frames before everything else happens, cuz they store pointers to the freed theme, then redraw them at the end
This commit is contained in:
parent
13bbcdd86b
commit
0a220fb6a1
1 changed files with 10 additions and 1 deletions
|
@ -218,6 +218,15 @@ int main(int argc, char **argv)
|
||||||
ob_exit_with_error("Unable to load a theme.");
|
ob_exit_with_error("Unable to load a theme.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (reconfigure) {
|
||||||
|
GList *it;
|
||||||
|
|
||||||
|
/* update all existing windows for the new theme */
|
||||||
|
for (it = client_list; it; it = g_list_next(it)) {
|
||||||
|
ObClient *c = it->data;
|
||||||
|
frame_adjust_theme(c->frame);
|
||||||
|
}
|
||||||
|
}
|
||||||
event_startup(reconfigure);
|
event_startup(reconfigure);
|
||||||
grab_startup(reconfigure);
|
grab_startup(reconfigure);
|
||||||
/* focus_backup is used for stacking, so this needs to come before
|
/* focus_backup is used for stacking, so this needs to come before
|
||||||
|
@ -243,7 +252,7 @@ int main(int argc, char **argv)
|
||||||
/* redecorate all existing windows */
|
/* redecorate all existing windows */
|
||||||
for (it = client_list; it; it = g_list_next(it)) {
|
for (it = client_list; it; it = g_list_next(it)) {
|
||||||
ObClient *c = it->data;
|
ObClient *c = it->data;
|
||||||
frame_adjust_theme(c->frame);
|
frame_adjust_area(c->frame, TRUE, TRUE, FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue