snap: don't snap to any windows if workspace has a fullscreen window (#8870)

This commit is contained in:
Mike Will 2025-01-06 11:37:13 -05:00 committed by GitHub
parent 780e3dd542
commit 602d6b7356
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -423,9 +423,11 @@ static void performSnap(Vector2D& sourcePos, Vector2D& sourceSize, PHLWINDOW DRA
if (*SNAPWINDOWGAP) { if (*SNAPWINDOWGAP) {
const double GAPSIZE = *SNAPWINDOWGAP; const double GAPSIZE = *SNAPWINDOWGAP;
const auto WSID = DRAGGINGWINDOW->workspaceID(); const auto WSID = DRAGGINGWINDOW->workspaceID();
const bool HASFULLSCREEN = DRAGGINGWINDOW->m_pWorkspace && DRAGGINGWINDOW->m_pWorkspace->m_bHasFullscreenWindow;
for (auto& other : g_pCompositor->m_vWindows) { for (auto& other : g_pCompositor->m_vWindows) {
if (other == DRAGGINGWINDOW || other->workspaceID() != WSID || !other->m_bIsMapped || other->m_bFadingOut || other->isX11OverrideRedirect()) if ((HASFULLSCREEN && !other->m_bCreatedOverFullscreen) || other == DRAGGINGWINDOW || other->workspaceID() != WSID || !other->m_bIsMapped || other->m_bFadingOut ||
other->isX11OverrideRedirect())
continue; continue;
const int OTHERBORDERSIZE = other->getRealBorderSize(); const int OTHERBORDERSIZE = other->getRealBorderSize();