diff --git a/src/protocols/PointerConstraints.cpp b/src/protocols/PointerConstraints.cpp index ea7f4654..ddfa2ae7 100644 --- a/src/protocols/PointerConstraints.cpp +++ b/src/protocols/PointerConstraints.cpp @@ -169,10 +169,14 @@ CWLSurface* CPointerConstraint::owner() { } CRegion CPointerConstraint::logicConstraintRegion() { - CRegion rg = region; const auto SURFBOX = pHLSurface->getSurfaceBoxGlobal(); - const auto CONSTRAINTPOS = SURFBOX.has_value() ? SURFBOX->pos() : Vector2D{}; - rg.translate(CONSTRAINTPOS); + + if (!SURFBOX.has_value()) + return region; + + CRegion rg = region.empty() ? CRegion{0, 0, SURFBOX->w, SURFBOX->h} : region; + rg.translate(SURFBOX->pos()); + return rg; }