Fix edge cases when moving floating container to new workspace

* Removes container_floating_move_to_container, instead opting to put
that logic in container_move_to
* In the seat code, focusing a floating view now updates the pending
state only and lets the next transaction carry it over to the current
state. This is required, otherwise it would crash.
* When unfullscreening a floating container, an output check is now done
to see if it should center it.
This commit is contained in:
Ryan Dwyer 2018-08-07 09:30:27 +10:00
parent 36281609ea
commit a0649190de
4 changed files with 47 additions and 54 deletions

View file

@ -717,12 +717,8 @@ void seat_set_focus_warp(struct sway_seat *seat,
// If we've focused a floating container, bring it to the front.
// We do this by putting it at the end of the floating list.
// This must happen for both the pending and current children lists.
if (container && container_is_floating(container)) {
list_move_to_end(container->parent->children, container);
if (container_has_ancestor(container, container->current.parent)) {
list_move_to_end(container->parent->current.children, container);
}
}
// clean up unfocused empty workspace on new output