From 788a8f7c134a34085d683e44a328e344be6b21f3 Mon Sep 17 00:00:00 2001 From: Vaxry <43317083+vaxerski@users.noreply.github.com> Date: Mon, 20 Mar 2023 15:00:58 +0000 Subject: internal: wrap wlr surfaces (#1822) --- src/events/Layers.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/events/Layers.cpp') diff --git a/src/events/Layers.cpp b/src/events/Layers.cpp index 28c80e1d..a7135953 100644 --- a/src/events/Layers.cpp +++ b/src/events/Layers.cpp @@ -112,6 +112,8 @@ void Events::listener_mapLayerSurface(void* owner, void* data) { layersurface->layerSurface->mapped = true; layersurface->mapped = true; + layersurface->surface = layersurface->layerSurface->surface; + // anim layersurface->alpha.setConfig(g_pConfigManager->getAnimationPropertyConfig("fadeIn")); @@ -207,12 +209,15 @@ void Events::listener_unmapLayerSurface(void* owner, void* data) { const auto PMONITOR = g_pCompositor->getMonitorFromOutput(layersurface->layerSurface->output); + const bool WASLASTFOCUS = g_pCompositor->m_pLastFocus == layersurface->layerSurface->surface; + + layersurface->surface = nullptr; + if (!PMONITOR) return; // refocus if needed - if (layersurface->layerSurface->surface == g_pCompositor->m_pLastFocus) { - + if (WASLASTFOCUS) { Vector2D surfaceCoords; SLayerSurface* pFoundLayerSurface = nullptr; wlr_surface* foundSurface = nullptr; -- cgit v1.2.3