Fix crash when unfloating child of container into empty workspace

This commit is contained in:
Ryan Dwyer 2018-07-27 13:46:01 +10:00
parent 9d1f6e095b
commit debb8e85b2

View File

@ -1030,10 +1030,13 @@ void container_set_floating(struct sway_container *container, bool enable) {
if (container->scratchpad) { if (container->scratchpad) {
scratchpad_remove_container(container); scratchpad_remove_container(container);
} }
struct sway_container *sibling =
seat_get_focus_inactive_tiling(seat, workspace);
container_remove_child(container); container_remove_child(container);
container_add_sibling(sibling, container); struct sway_container *reference =
seat_get_focus_inactive_tiling(seat, workspace);
if (reference->type == C_VIEW) {
reference = reference->parent;
}
container_add_child(reference, container);
container->width = container->parent->width; container->width = container->parent->width;
container->height = container->parent->height; container->height = container->parent->height;
if (container->type == C_VIEW) { if (container->type == C_VIEW) {