summaryrefslogtreecommitdiff
path: root/src/events/Layers.cpp
diff options
context:
space:
mode:
authorvaxerski <vaxry@vaxry.net>2022-11-03 08:56:41 +0000
committervaxerski <vaxry@vaxry.net>2022-11-03 08:56:47 +0000
commit31aa357c17ab670041695da3d8ba8586063bf5a6 (patch)
tree744c63bd69ee5644529d103090eac81c99cd02d6 /src/events/Layers.cpp
parent6ddfae0a077b2659179c4bb2fc1ae0691b984ccc (diff)
fix safety over ls outputs
Diffstat (limited to 'src/events/Layers.cpp')
-rw-r--r--src/events/Layers.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/events/Layers.cpp b/src/events/Layers.cpp
index da57bb68..f26575ec 100644
--- a/src/events/Layers.cpp
+++ b/src/events/Layers.cpp
@@ -31,15 +31,17 @@ void Events::listener_newLayerSurface(wl_listener* listener, void* data) {
WLRLAYERSURFACE->output = PMONITOR->output;
}
- const auto PMONITOR = (CMonitor*)g_pCompositor->getMonitorFromOutput(WLRLAYERSURFACE->output);
+ auto PMONITOR = (CMonitor*)g_pCompositor->getMonitorFromOutput(WLRLAYERSURFACE->output);
+
+ if (!WLRLAYERSURFACE->output || !PMONITOR || PMONITOR->pMirrorOf) {
+ PMONITOR = g_pCompositor->m_vMonitors.front().get();
+ WLRLAYERSURFACE->output = PMONITOR->output; // TODO: current mon
+ }
+
SLayerSurface* layerSurface = PMONITOR->m_aLayerSurfaceLists[WLRLAYERSURFACE->pending.layer].emplace_back(std::make_unique<SLayerSurface>()).get();
layerSurface->szNamespace = WLRLAYERSURFACE->_namespace;
- if (!WLRLAYERSURFACE->output) {
- WLRLAYERSURFACE->output = g_pCompositor->m_vMonitors.front()->output; // TODO: current mon
- }
-
layerSurface->hyprListener_commitLayerSurface.initCallback(&WLRLAYERSURFACE->surface->events.commit, &Events::listener_commitLayerSurface, layerSurface, "layerSurface");
layerSurface->hyprListener_destroyLayerSurface.initCallback(&WLRLAYERSURFACE->events.destroy, &Events::listener_destroyLayerSurface, layerSurface, "layerSurface");
layerSurface->hyprListener_mapLayerSurface.initCallback(&WLRLAYERSURFACE->events.map, &Events::listener_mapLayerSurface, layerSurface, "layerSurface");