summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
authorvaxerski <vaxry@vaxry.net>2023-01-20 19:15:15 +0100
committervaxerski <vaxry@vaxry.net>2023-01-20 19:15:15 +0100
commitfb2679d5ef1e35358808b336711ad49cb7359717 (patch)
treea9345c0ccd7c4c48f6a40d87a6046d995edd9e91 /src/Compositor.cpp
parent6f3548b18486fe9eb9285c6a3971b9a1168e07f5 (diff)
add a focus history vec
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index ca7f9b69..37ec97d5 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -865,6 +865,14 @@ void CCompositor::focusWindow(CWindow* pWindow, wlr_surface* pSurface) {
}
g_pInputManager->recheckIdleInhibitorStatus();
+
+ // move to front of the window history
+ const auto HISTORYPIVOT = std::find_if(m_vWindowFocusHistory.begin(), m_vWindowFocusHistory.end(), [&](const auto& other) { return other == pWindow; });
+ if (HISTORYPIVOT == m_vWindowFocusHistory.end()) {
+ Debug::log(ERR, "BUG THIS: Window %x has no pivot in history", pWindow);
+ } else {
+ std::rotate(m_vWindowFocusHistory.begin(), HISTORYPIVOT, HISTORYPIVOT + 1);
+ }
}
void CCompositor::focusSurface(wlr_surface* pSurface, CWindow* pWindowOwner) {