summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
authorMightyPlaza <123664421+MightyPlaza@users.noreply.github.com>2023-08-10 18:06:39 +0000
committerGitHub <noreply@github.com>2023-08-10 20:06:39 +0200
commitc4c3b590e5711f7c65e821407c2c81d9e3c6af34 (patch)
treeab2a4de2b942578ee1bae27f078c7fc4929509c4 /src/Compositor.cpp
parent126792584fa4eb25f6c8e3b3eb6bfb00b58a787a (diff)
toplevel: patches group toplevel-activated (#2931)
* patches group toplevel-activated modified: src/Compositor.cpp modified: src/Window.cpp * remove redundant call modified: src/Compositor.cpp * fix style modified: src/Compositor.cpp
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index ec70bb68..f2fcceff 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -924,6 +924,16 @@ void CCompositor::focusWindow(CWindow* pWindow, wlr_surface* pSurface) {
g_pLayoutManager->getCurrentLayout()->onWindowFocusChange(pWindow);
+ // TODO: implement this better
+ if (!PLASTWINDOW && pWindow->m_sGroupData.pNextWindow && pWindow->m_sGroupData.pNextWindow != pWindow) {
+ auto curr = pWindow;
+ do {
+ curr = curr->m_sGroupData.pNextWindow;
+ if (curr->m_phForeignToplevel)
+ wlr_foreign_toplevel_handle_v1_set_activated(curr->m_phForeignToplevel, false);
+ } while (curr->m_sGroupData.pNextWindow != pWindow);
+ }
+
if (pWindow->m_phForeignToplevel)
wlr_foreign_toplevel_handle_v1_set_activated(pWindow->m_phForeignToplevel, true);