summaryrefslogtreecommitdiff
path: root/src/protocols/PointerConstraints.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/protocols/PointerConstraints.cpp')
-rw-r--r--src/protocols/PointerConstraints.cpp11
1 files 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<CWLSurface> 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;