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

@ -322,6 +322,12 @@ void container_get_box(struct sway_container *container, struct wlr_box *box);
void container_floating_translate(struct sway_container *con,
double x_amount, double y_amount);
/**
* Choose an output for the floating container's new position.
*/
struct sway_container *container_floating_find_output(
struct sway_container *con);
/**
* Move a floating container to a new layout-local position.
*/
@ -333,9 +339,6 @@ void container_floating_move_to(struct sway_container *con,
*/
void container_floating_move_to_center(struct sway_container *con);
void container_floating_move_to_container(struct sway_container *container,
struct sway_container *destination);
/**
* Mark a container as dirty if it isn't already. Dirty containers will be
* included in the next transaction then unmarked as dirty.