summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2025-12-13 13:54:59 +0000
committerVaxry <vaxry@vaxry.net>2025-12-13 13:55:48 +0000
commitfd5e790d08ae5504a9604d3537172b2c944b003b (patch)
treeb9f5449d26cfc3c04510f35a5d1f4f2823cd609f /src/Compositor.cpp
parent69db0bcae640410b6c587cb0ffd0c89bc8166ff0 (diff)
compositor: return nullptr when cursor is outside of a maximized windows' box
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index 57fac42b..d83b93a5 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -996,8 +996,18 @@ PHLWINDOW CCompositor::vectorToWindowUnified(const Vector2D& pos, uint8_t proper
const WORKSPACEID WSPID = special ? PMONITOR->activeSpecialWorkspaceID() : PMONITOR->activeWorkspaceID();
const auto PWORKSPACE = getWorkspaceByID(WSPID);
- if (PWORKSPACE->m_hasFullscreenWindow && !(properties & Desktop::View::SKIP_FULLSCREEN_PRIORITY) && !ONLY_PRIORITY)
- return PWORKSPACE->getFullscreenWindow();
+ if (PWORKSPACE->m_hasFullscreenWindow && !(properties & Desktop::View::SKIP_FULLSCREEN_PRIORITY) && !ONLY_PRIORITY) {
+ const auto FS_WINDOW = PWORKSPACE->getFullscreenWindow();
+
+ if (!FS_WINDOW)
+ return nullptr;
+
+ // for maximized windows, don't return a window if we are not directly on it.
+ if (FS_WINDOW->m_fullscreenState.internal != FSMODE_MAXIMIZED || FS_WINDOW->getWindowBoxUnified(properties).containsPoint(pos))
+ return PWORKSPACE->getFullscreenWindow();
+ else
+ return nullptr;
+ }
auto found = floating(false);
if (found)