Bugfix: Don’t unmap windows when current workspace gets reassigned

Steps to reproduce were:
1) xrandr --output VGA1 --auto --left-of LVDS1
2) open a terminal on VGA1
3) xrandr --output VGA1 --off
This commit is contained in:
Michael Stapelberg 2010-03-24 16:06:21 +01:00
parent 85730d6892
commit 0f7ac09c7b
1 changed files with 7 additions and 2 deletions

View File

@ -248,12 +248,17 @@ void workspace_assign_to(Workspace *ws, Output *output, bool hide_it) {
if (visible && !hide_it) if (visible && !hide_it)
return; return;
workspace_unmap_clients(global_conn, ws); /* however, if this is the current workspace, we only need to adjust
* the outputs current_workspace pointer (and must not unmap the
* windows) */
if (c_ws == ws) { if (c_ws == ws) {
DLOG("Need to adjust output->current_workspace...\n"); DLOG("Need to adjust output->current_workspace...\n");
output->current_workspace = c_ws; output->current_workspace = c_ws;
ipc_send_event("workspace", I3_IPC_EVENT_WORKSPACE, "{\"change\":\"focus\"}");
return;
} }
workspace_unmap_clients(global_conn, ws);
} }
/* /*