diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp index 73acad4..5088955 100644 --- a/src/Hy3Layout.cpp +++ b/src/Hy3Layout.cpp @@ -1144,7 +1144,13 @@ void Hy3Layout::shiftFocus(int workspace, ShiftDirection direction, bool visible CWindow *source_window = g_pCompositor->m_pLastWindow; CWorkspace *source_workspace = g_pCompositor->getWorkspaceByID(workspace); - if(source_window == nullptr || (source_workspace && source_workspace->m_bHasFullscreenWindow)) { + if (source_workspace) { + source_window = source_workspace->m_pLastFocusedWindow; + } else { + source_window = g_pCompositor->m_pLastWindow; + } + + if (source_window == nullptr || (source_workspace && source_workspace->m_bHasFullscreenWindow)) { shiftFocusToMonitor(direction); return; }