|
|
|
@ -311,6 +311,7 @@ static bool container_move_in_direction(struct sway_container *container,
|
|
|
|
|
|
|
|
|
|
while (current) {
|
|
|
|
|
list_t *siblings = container_get_siblings(current);
|
|
|
|
|
if (siblings) {
|
|
|
|
|
enum sway_container_layout layout = container_parent_layout(current);
|
|
|
|
|
int index = list_find(siblings, current);
|
|
|
|
|
int desired = index + offs;
|
|
|
|
@ -344,12 +345,14 @@ static bool container_move_in_direction(struct sway_container *container,
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
current = current->parent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Maybe rejigger the workspace
|
|
|
|
|
struct sway_workspace *ws = container->workspace;
|
|
|
|
|
if (ws) {
|
|
|
|
|
if (!is_parallel(ws->layout, move_dir)) {
|
|
|
|
|
workspace_rejigger(ws, container, move_dir);
|
|
|
|
|
return true;
|
|
|
|
@ -370,6 +373,7 @@ static bool container_move_in_direction(struct sway_container *container,
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
sway_log(SWAY_DEBUG, "Hit edge of output, nowhere else to go");
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|