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

This commit is contained in:
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)) { (direction == D_LEFT && other->x < cur->x)) {
/* Skip the output when it doesnt overlap the other ones y /* Skip the output when it doesnt overlap the other ones y
* coordinate at all. */ * coordinate at all. */
if ((other->y + other->height) < cur->y && if ((other->y + other->height) <= cur->y ||
(cur->y + cur->height) < other->y) (cur->y + cur->height) <= other->y)
continue; continue;
} else if ((direction == D_DOWN && other->y > cur->y) || } else if ((direction == D_DOWN && other->y > cur->y) ||
(direction == D_UP && other->y < cur->y)) { (direction == D_UP && other->y < cur->y)) {
/* Skip the output when it doesnt overlap the other ones x /* Skip the output when it doesnt overlap the other ones x
* coordinate at all. */ * coordinate at all. */
if ((other->x + other->width) < cur->x && if ((other->x + other->width) <= cur->x ||
(cur->x + cur->width) < other->x) (cur->x + cur->width) <= other->x)
continue; continue;
} else } else
continue; continue;