From 223beb8a826773e2e3ea4c6d7e7d40fde9247d9a Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sat, 2 Apr 2022 18:57:09 +0200 Subject: Multiple focus handling changes --- src/managers/XWaylandManager.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/managers/XWaylandManager.cpp') diff --git a/src/managers/XWaylandManager.cpp b/src/managers/XWaylandManager.cpp index 6fd37f94..0e419c0f 100644 --- a/src/managers/XWaylandManager.cpp +++ b/src/managers/XWaylandManager.cpp @@ -37,6 +37,19 @@ void CHyprXWaylandManager::activateSurface(wlr_surface* pSurface, bool activate) wlr_xwayland_surface_activate(wlr_xwayland_surface_from_wlr_surface(pSurface), activate); } +void CHyprXWaylandManager::activateWindow(CWindow* pWindow, bool activate) { + if (pWindow == g_pCompositor->m_pLastWindow) + return; + + if (pWindow->m_bIsX11) + wlr_xwayland_surface_activate(pWindow->m_uSurface.xwayland, activate); + else + wlr_xdg_toplevel_set_activated(pWindow->m_uSurface.xdg->toplevel, activate); + + g_pCompositor->m_pLastFocus = getWindowSurface(pWindow); + g_pCompositor->m_pLastWindow = pWindow; +} + void CHyprXWaylandManager::getGeometryForWindow(CWindow* pWindow, wlr_box* pbox) { if (pWindow->m_bIsX11) { pbox->x = pWindow->m_uSurface.xwayland->x; -- cgit v1.2.3