From 0b924f541c744f96d32c9a0d98dcfd90205bab4c Mon Sep 17 00:00:00 2001 From: MariuszTrybus Date: Sat, 22 Jun 2024 17:05:05 +0200 Subject: [PATCH] constraints: Lock surface region when region is empty (#6627) * Pointer constraints: Lock surface region when region is empty * Format code --- src/protocols/PointerConstraints.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/protocols/PointerConstraints.cpp b/src/protocols/PointerConstraints.cpp index c7b78a5b..a17fa6cd 100644 --- a/src/protocols/PointerConstraints.cpp +++ b/src/protocols/PointerConstraints.cpp @@ -165,8 +165,15 @@ SP CPointerConstraint::owner() { } CRegion CPointerConstraint::logicConstraintRegion() { - CRegion rg = region; - const auto SURFBOX = pHLSurface->getSurfaceBoxGlobal(); + CRegion rg = region; + const auto SURFBOX = pHLSurface->getSurfaceBoxGlobal(); + + // if region wasn't set in pointer-constraints request take surface region + if (rg.empty() && SURFBOX.has_value()) { + rg.set(SURFBOX.value()); + return rg; + } + const auto CONSTRAINTPOS = SURFBOX.has_value() ? SURFBOX->pos() : Vector2D{}; rg.translate(CONSTRAINTPOS); return rg;