sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit 0278c4db6f7334b02ae824434ef52abab342b900
parent 218b5b9dc0f90693be0a77f0bd3001f1912b86aa
Author: Brian Ashworth <bosrsf04@gmail.com>
Date:   Sun, 15 Dec 2019 21:35:20 -0500

root_scratchpad_hide: disable fullscreen descendants

Any descendant of a scratchpad container may be fullscreen so checking
to see if the top-level scratchpad container is fullscreen in
root_scratchpad_hide is not sufficient. This iterates through all
descendants of the scratchpad container

Diffstat:
Msway/tree/root.c | 11++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/sway/tree/root.c b/sway/tree/root.c @@ -149,6 +149,12 @@ void root_scratchpad_show(struct sway_container *con) { seat_set_focus(seat, seat_get_focus_inactive(seat, &con->node)); } +static void disable_fullscreen(struct sway_container *con, void *data) { + if (con->fullscreen_mode != FULLSCREEN_NONE) { + container_fullscreen_disable(con); + } +} + void root_scratchpad_hide(struct sway_container *con) { struct sway_seat *seat = input_manager_current_seat(); struct sway_node *focus = seat_get_focus_inactive(seat, &root->node); @@ -160,9 +166,8 @@ void root_scratchpad_hide(struct sway_container *con) { return; } - if (con->fullscreen_mode != FULLSCREEN_NONE) { - container_fullscreen_disable(con); - } + disable_fullscreen(con, NULL); + container_for_each_child(con, disable_fullscreen, NULL); container_detach(con); arrange_workspace(ws); if (&con->node == focus || node_has_ancestor(focus, &con->node)) {