diff options
| author | Vaxry <vaxry@vaxry.net> | 2026-02-24 19:01:51 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2026-02-24 19:01:51 +0000 |
| commit | c60b3cb2ed0404d9573b2801b51ba7be1da999d9 (patch) | |
| tree | e74cc1efaada737d6959150bfdb6d2df2d3a9631 /src/layout/algorithm | |
| parent | fbf67ef050c8a82ffe6156b255cc89d6020c1084 (diff) | |
target: fix geometry for x11 floats
Diffstat (limited to 'src/layout/algorithm')
| -rw-r--r-- | src/layout/algorithm/floating/default/DefaultFloatingAlgorithm.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/layout/algorithm/floating/default/DefaultFloatingAlgorithm.cpp b/src/layout/algorithm/floating/default/DefaultFloatingAlgorithm.cpp index 7fb8ec7e..cbf0f8c0 100644 --- a/src/layout/algorithm/floating/default/DefaultFloatingAlgorithm.cpp +++ b/src/layout/algorithm/floating/default/DefaultFloatingAlgorithm.cpp @@ -88,7 +88,9 @@ void CDefaultFloatingAlgorithm::newTarget(SP<ITarget> target) { if (!posOverridden && (!DESIRED_GEOM || !DESIRED_GEOM->pos)) windowGeometry = CBox{WORK_AREA.middle() - windowGeometry.size() / 2.F, windowGeometry.size()}; - if (posOverridden || WORK_AREA.containsPoint(windowGeometry.middle())) + if (posOverridden // pos is overridden by a rule + || (DESIRED_GEOM && DESIRED_GEOM->pos && target->window() && target->window()->m_isX11) // X11 window with a geom + || WORK_AREA.containsPoint(windowGeometry.middle())) // geometry within work area target->setPositionGlobal(windowGeometry); else { const auto POS = WORK_AREA.middle() - windowGeometry.size() / 2.f; |
