diff --git a/src/servers/app/Desktop.cpp b/src/servers/app/Desktop.cpp index 1540bc3583..f533c93781 100644 --- a/src/servers/app/Desktop.cpp +++ b/src/servers/app/Desktop.cpp @@ -1065,16 +1065,21 @@ Desktop::HideWindow(Window* window) fMouseEventWindow = NULL; } + if (fLockedFocusWindow == window) { + // Remove the focus lock so the focus can be changed below + fLockedFocusWindow = NULL; + } + if (window->InWorkspace(fCurrentWorkspace)) { _UpdateSubsetWorkspaces(window); _HideWindow(window); _UpdateFronts(); - - if (FocusWindow() == window) - SetFocusWindow(); } else _WindowChanged(window); + if (FocusWindow() == window) + SetFocusWindow(); + _WindowRemoved(window); if (window->HasWorkspacesViews()) {