In get_output_next(), avoid an off-by-one for adjacent outputs and || mutually-exclusive failure conditions.

next
Deiz 2012-09-22 12:05:22 -04:00 committed by Michael Stapelberg
parent 11378b7012
commit eb4a7f725d
1 changed files with 4 additions and 4 deletions

View File

@ -127,15 +127,15 @@ Output *get_output_next(direction_t direction, Output *current, output_close_far
(direction == D_LEFT && other->x < cur->x)) {
/* Skip the output when it doesnt overlap the other ones y
* coordinate at all. */
if ((other->y + other->height) < cur->y &&
(cur->y + cur->height) < other->y)
if ((other->y + other->height) <= cur->y ||
(cur->y + cur->height) <= other->y)
continue;
} else if ((direction == D_DOWN && other->y > cur->y) ||
(direction == D_UP && other->y < cur->y)) {
/* Skip the output when it doesnt overlap the other ones x
* coordinate at all. */
if ((other->x + other->width) < cur->x &&
(cur->x + cur->width) < other->x)
if ((other->x + other->width) <= cur->x ||
(cur->x + cur->width) <= other->x)
continue;
} else
continue;