summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index 574c9575..f5918192 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -808,8 +808,14 @@ void CCompositor::focusWindow(CWindow* pWindow, wlr_surface* pSurface) {
if (pWindow->m_bPinned)
pWindow->m_iWorkspaceID = m_pLastMonitor->activeWorkspace;
- if (!isWorkspaceVisible(pWindow->m_iWorkspaceID))
+ if (!isWorkspaceVisible(pWindow->m_iWorkspaceID)) {
+ // This is to fix incorrect feedback on the focus history.
+ const auto PWORKSPACE = getWorkspaceByID(pWindow->m_iWorkspaceID);
+ PWORKSPACE->m_pLastFocusedWindow = pWindow;
g_pKeybindManager->changeworkspace("[internal]" + std::to_string(pWindow->m_iWorkspaceID));
+ // changeworkspace already calls focusWindow
+ return;
+ }
const auto PLASTWINDOW = m_pLastWindow;
m_pLastWindow = pWindow;