diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index bcb09381..660b08a2 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -477,6 +477,9 @@ void Events::listener_setTitleWindow(void* owner, void* data) { void Events::listener_fullscreenWindow(void* owner, void* data) { CWindow* PWINDOW = (CWindow*)owner; + if (!PWINDOW->m_bIsMapped || PWINDOW->m_bHidden) + return; + if (!PWINDOW->m_bIsX11) { const auto REQUESTED = &PWINDOW->m_uSurface.xdg->toplevel->requested; diff --git a/src/layout/DwindleLayout.cpp b/src/layout/DwindleLayout.cpp index 13ee7774..04d0223f 100644 --- a/src/layout/DwindleLayout.cpp +++ b/src/layout/DwindleLayout.cpp @@ -487,6 +487,10 @@ void CHyprDwindleLayout::onWindowRemovedTiling(CWindow* pWindow) { void CHyprDwindleLayout::recalculateMonitor(const int& monid) { const auto PMONITOR = g_pCompositor->getMonitorFromID(monid); + + if (!PMONITOR) + return; // ??? + const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(PMONITOR->activeWorkspace); if (!PWORKSPACE) @@ -512,6 +516,9 @@ void CHyprDwindleLayout::recalculateMonitor(const int& monid) { // massive hack from the fullscreen func const auto PFULLWINDOW = g_pCompositor->getFullscreenWindowOnWorkspace(PWORKSPACE->m_iID); + if (!PFULLWINDOW) // ???? + PWORKSPACE->m_bHasFullscreenWindow = false; + SDwindleNodeData fakeNode; fakeNode.pWindow = PFULLWINDOW; fakeNode.position = PMONITOR->vecPosition + PMONITOR->vecReservedTopLeft;