diff options
| author | vaxerski <vaxry@vaxry.net> | 2023-01-20 19:15:15 +0100 |
|---|---|---|
| committer | vaxerski <vaxry@vaxry.net> | 2023-01-20 19:15:15 +0100 |
| commit | fb2679d5ef1e35358808b336711ad49cb7359717 (patch) | |
| tree | a9345c0ccd7c4c48f6a40d87a6046d995edd9e91 /src/Compositor.cpp | |
| parent | 6f3548b18486fe9eb9285c6a3971b9a1168e07f5 (diff) | |
add a focus history vec
Diffstat (limited to 'src/Compositor.cpp')
| -rw-r--r-- | src/Compositor.cpp | 8 |
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) { |
