aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-06-05 08:46:15 +0100
committerGitHub <noreply@github.com>2018-06-05 08:46:15 +0100
commit7366e1ced972f495a87eaff81706a83b5de56cf1 (patch)
tree83d1099630114fadd3fe80a06f90560d44b5af6d
parenta57d1baf57e86201c89c2e43c7cc0b0269f1b5d3 (diff)
parent7206997e958f8fe155abdfedfb91b95a4f729d1a (diff)
Merge pull request #1040 from acrisci/fix-box-minus-one
fix wlr_box_intersection and closest_point
-rw-r--r--types/wlr_box.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/types/wlr_box.c b/types/wlr_box.c
index c92b0aa4..f8fe9dfe 100644
--- a/types/wlr_box.c
+++ b/types/wlr_box.c
@@ -11,8 +11,8 @@ void wlr_box_closest_point(const struct wlr_box *box, double x, double y,
// find the closest x point
if (x < box->x) {
*dest_x = box->x;
- } else if (x > box->x + box->width) {
- *dest_x = box->x + box->width;
+ } else if (x >= box->x + box->width) {
+ *dest_x = box->x + box->width - 1;
} else {
*dest_x = x;
}
@@ -20,8 +20,8 @@ void wlr_box_closest_point(const struct wlr_box *box, double x, double y,
// find closest y point
if (y < box->y) {
*dest_y = box->y;
- } else if (y > box->y + box->height) {
- *dest_y = box->y + box->height;
+ } else if (y >= box->y + box->height) {
+ *dest_y = box->y + box->height - 1;
} else {
*dest_y = y;
}
@@ -46,8 +46,8 @@ bool wlr_box_intersection(const struct wlr_box *box_a,
int x1 = fmax(box_a->x, box_b->x);
int y1 = fmax(box_a->y, box_b->y);
- int x2 = fmin(box_a->x + box_a->width, box_b->x + box_b->width);
- int y2 = fmin(box_a->y + box_a->height, box_b->y + box_b->height);
+ int x2 = fmin(box_a->x + box_a->width - 1, box_b->x + box_b->width - 1);
+ int y2 = fmin(box_a->y + box_a->height - 1, box_b->y + box_b->height - 1);
dest->x = x1;
dest->y = y1;