summaryrefslogtreecommitdiff
path: root/src/layout/target/WindowTarget.cpp
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2026-03-01 19:21:53 +0000
committerGitHub <noreply@github.com>2026-03-01 19:21:53 +0000
commitcf0d256c130a80519597a92f2455ed1866bbef7e (patch)
tree2c4e374568bf64ca88f4a2ec8443d2761aef45cb /src/layout/target/WindowTarget.cpp
parent6ebafcf1073d5d0fd89e668ae2588f4d525ea403 (diff)
layout/windowTarget: fix size_limits_tiled (#13445)
fucks up on scroll, also, wtf
Diffstat (limited to 'src/layout/target/WindowTarget.cpp')
-rw-r--r--src/layout/target/WindowTarget.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/layout/target/WindowTarget.cpp b/src/layout/target/WindowTarget.cpp
index 05c328af..49f75102 100644
--- a/src/layout/target/WindowTarget.cpp
+++ b/src/layout/target/WindowTarget.cpp
@@ -162,18 +162,14 @@ void CWindowTarget::updatePos() {
static auto PCLAMP_TILED = CConfigValue<Hyprlang::INT>("misc:size_limits_tiled");
if (*PCLAMP_TILED) {
- const auto borderSize = m_window->getRealBorderSize();
- Vector2D monitorAvailable = MONITOR_WORKAREA.size() - Vector2D{2.0 * borderSize, 2.0 * borderSize};
-
- Vector2D minSize = m_window->m_ruleApplicator->minSize().valueOr(Vector2D{MIN_WINDOW_SIZE, MIN_WINDOW_SIZE}).clamp(Vector2D{0, 0}, monitorAvailable);
- Vector2D maxSize = m_window->isFullscreen() ? Vector2D{INFINITY, INFINITY} :
- m_window->m_ruleApplicator->maxSize().valueOr(Vector2D{INFINITY, INFINITY}).clamp(Vector2D{0, 0}, monitorAvailable);
- calcSize = calcSize.clamp(minSize, maxSize);
+ Vector2D minSize = m_window->m_ruleApplicator->minSize().valueOr(Vector2D{MIN_WINDOW_SIZE, MIN_WINDOW_SIZE});
+ Vector2D maxSize = m_window->isFullscreen() ? Vector2D{INFINITY, INFINITY} : m_window->m_ruleApplicator->maxSize().valueOr(Vector2D{INFINITY, INFINITY});
+ calcSize = calcSize.clamp(minSize, maxSize);
calcPos += (availableSpace - calcSize) / 2.0;
- calcPos.x = std::clamp(calcPos.x, MONITOR_WORKAREA.x + borderSize, MONITOR_WORKAREA.x + MONITOR_WORKAREA.w - calcSize.x - borderSize);
- calcPos.y = std::clamp(calcPos.y, MONITOR_WORKAREA.y + borderSize, MONITOR_WORKAREA.y + MONITOR_WORKAREA.h - calcSize.y - borderSize);
+ calcPos.x = std::clamp(calcPos.x, MONITOR_WORKAREA.x, MONITOR_WORKAREA.x + MONITOR_WORKAREA.w - calcSize.x);
+ calcPos.y = std::clamp(calcPos.y, MONITOR_WORKAREA.y, MONITOR_WORKAREA.y + MONITOR_WORKAREA.h - calcSize.y);
}
if (m_window->onSpecialWorkspace() && !m_window->isFullscreen()) {