diff --git a/src/randr.c b/src/randr.c index bd887630..aa2ea351 100644 --- a/src/randr.c +++ b/src/randr.c @@ -164,19 +164,23 @@ Output *get_output_next(direction_t direction, Output *current) { switch (direction) { case D_UP: - if (current->rect.y < output->rect.y && (!candidate || output->rect.y < candidate->rect.y)) + if (output->rect.y < current->rect.y && + (!candidate || output->rect.y < candidate->rect.y)) candidate = output; break; case D_DOWN: - if (current->rect.y > output->rect.y && (!candidate || output->rect.y > candidate->rect.y)) + if (output->rect.y > current->rect.y && + (!candidate || output->rect.y > candidate->rect.y)) candidate = output; break; case D_LEFT: - if (current->rect.x > output->rect.x && (!candidate || output->rect.x > candidate->rect.x)) + if (output->rect.x < current->rect.x && + (!candidate || output->rect.x > candidate->rect.x)) candidate = output; break; case D_RIGHT: - if (current->rect.x < output->rect.x && (!candidate || output->rect.x < candidate->rect.x)) + if (output->rect.x > current->rect.x && + (!candidate || output->rect.x < candidate->rect.x)) candidate = output; break; } diff --git a/src/tree.c b/src/tree.c index c76a47ee..55bf27d8 100644 --- a/src/tree.c +++ b/src/tree.c @@ -393,9 +393,9 @@ static bool _tree_next(Con *con, char way, orientation_t orientation, bool wrap) else if (way == 'p' && orientation == HORIZ) direction = D_LEFT; else if (way == 'n' && orientation == VERT) - direction = D_UP; - else if (way == 'p' && orientation == VERT) direction = D_DOWN; + else if (way == 'p' && orientation == VERT) + direction = D_UP; else return false;