diff options
| author | vaxerski <vaxry@vaxry.net> | 2022-11-03 08:56:41 +0000 |
|---|---|---|
| committer | vaxerski <vaxry@vaxry.net> | 2022-11-03 08:56:47 +0000 |
| commit | 31aa357c17ab670041695da3d8ba8586063bf5a6 (patch) | |
| tree | 744c63bd69ee5644529d103090eac81c99cd02d6 /src/events/Layers.cpp | |
| parent | 6ddfae0a077b2659179c4bb2fc1ae0691b984ccc (diff) | |
fix safety over ls outputs
Diffstat (limited to 'src/events/Layers.cpp')
| -rw-r--r-- | src/events/Layers.cpp | 12 |
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"); |
