add limit to swayc_in_direction

This commit is contained in:
taiyu 2015-08-24 01:11:21 -07:00
parent b054ac9d49
commit dbad30a409
5 changed files with 47 additions and 7 deletions

View file

@ -353,8 +353,7 @@ void arrange_windows(swayc_t *container, double width, double height) {
layout_log(&root_container, 0);
}
swayc_t *get_swayc_in_direction(swayc_t *container, enum movement_direction dir) {
swayc_t *get_swayc_in_direction_under(swayc_t *container, enum movement_direction dir, swayc_t *limit) {
swayc_t *parent = container->parent;
if (dir == MOVE_PARENT) {
@ -453,7 +452,7 @@ swayc_t *get_swayc_in_direction(swayc_t *container, enum movement_direction dir)
if (!can_move) {
container = parent;
parent = parent->parent;
if (!parent) {
if (!parent || container == limit) {
// Nothing we can do
return NULL;
}
@ -461,6 +460,10 @@ swayc_t *get_swayc_in_direction(swayc_t *container, enum movement_direction dir)
}
}
swayc_t *get_swayc_in_direction(swayc_t *container, enum movement_direction dir) {
return get_swayc_in_direction_under(container, dir, NULL);
}
void recursive_resize(swayc_t *container, double amount, enum wlc_resize_edge edge) {
int i;
bool layout_match = true;