ui: Fix Rect::reduce
- Properly handle the case where the Rect to be excluded is completely
outside the other Rect.
Bug 27415039
Change-Id: I3331d5b3ab231d023348079c781b194d24ac37dd
diff --git a/libs/ui/Rect.cpp b/libs/ui/Rect.cpp
index 99cbedc..d8702e5 100644
--- a/libs/ui/Rect.cpp
+++ b/libs/ui/Rect.cpp
@@ -127,13 +127,13 @@
if (!(mask & (mask - 1))) {
// power-of-2, i.e.: just one bit is set
if (mask & 1) {
- result.right = exclude.left;
+ result.right = min(result.right, exclude.left);
} else if (mask & 2) {
- result.bottom = exclude.top;
+ result.bottom = min(result.bottom, exclude.top);
} else if (mask & 4) {
- result.left = exclude.right;
+ result.left = max(result.left, exclude.right);
} else if (mask & 8) {
- result.top = exclude.bottom;
+ result.top = max(result.top, exclude.bottom);
}
}
}