clean up old workspace when switching (makes test 2 of t/16-*.t pass)
This commit is contained in:
parent
2534f21940
commit
138a790cd0
|
@ -33,7 +33,7 @@ Con *workspace_get(const char *num) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG("should switch to ws %s\n", num);
|
LOG("getting ws %s\n", num);
|
||||||
if (workspace == NULL) {
|
if (workspace == NULL) {
|
||||||
LOG("need to create this one\n");
|
LOG("need to create this one\n");
|
||||||
output = con_get_output(focused);
|
output = con_get_output(focused);
|
||||||
|
@ -96,7 +96,9 @@ bool workspace_is_visible(Workspace *ws) {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void workspace_show(const char *num) {
|
void workspace_show(const char *num) {
|
||||||
Con *workspace, *current;
|
Con *workspace, *current, *old;
|
||||||
|
|
||||||
|
old = con_get_workspace(focused);
|
||||||
|
|
||||||
workspace = workspace_get(num);
|
workspace = workspace_get(num);
|
||||||
workspace->fullscreen_mode = CF_OUTPUT;
|
workspace->fullscreen_mode = CF_OUTPUT;
|
||||||
|
@ -110,6 +112,12 @@ void workspace_show(const char *num) {
|
||||||
while (!TAILQ_EMPTY(&(next->focus_head)))
|
while (!TAILQ_EMPTY(&(next->focus_head)))
|
||||||
next = TAILQ_FIRST(&(next->focus_head));
|
next = TAILQ_FIRST(&(next->focus_head));
|
||||||
|
|
||||||
|
|
||||||
|
if (TAILQ_EMPTY(&(old->nodes_head))) {
|
||||||
|
LOG("Closing old workspace (%p / %s), it is empty\n", old, old->name);
|
||||||
|
tree_close(old);
|
||||||
|
}
|
||||||
|
|
||||||
con_focus(next);
|
con_focus(next);
|
||||||
workspace->fullscreen_mode = CF_OUTPUT;
|
workspace->fullscreen_mode = CF_OUTPUT;
|
||||||
LOG("focused now = %p / %s\n", focused, focused->name);
|
LOG("focused now = %p / %s\n", focused, focused->name);
|
||||||
|
|
Loading…
Reference in New Issue