aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2020-01-13 21:11:11 -0500
committerFurkan Sahin <furkan-dev@proton.me>2020-01-13 21:11:11 -0500
commit7b21b1524ca05b5962874d1329e97e904f0e221f (patch)
treeaf6e336ef794e25daedfbbeaffe9d2825369c53e
parent10a784d92a825385238989b8355c45920e3e5e4c (diff)
container: add inactive fullscreen to focus stack
When a container was being made fullscreen and it is on the focused workspace for a seat, focus was being set to the container. However, when the container was on a non-focused workspace, the focus stack wasn't being touched. When assigning a fullscreen container to a workspace or moving a fullscreen container to a different workspace, this would make it so the fullscreen container was never added to the focus stack for the workspace thus preventing access to the workspace. This adds the container to the top of the focus stack, behind the container on the focused workspace.
-rw-r--r--sway/tree/container.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c
index b89047a7..aa819be7 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -958,6 +958,11 @@ static void container_fullscreen_workspace(struct sway_container *con) {
focus_ws = seat_get_focused_workspace(seat);
if (focus_ws == con->workspace) {
seat_set_focus_container(seat, con);
+ } else {
+ struct sway_node *focus =
+ seat_get_focus_inactive(seat, &root->node);
+ seat_set_raw_focus(seat, &con->node);
+ seat_set_raw_focus(seat, focus);
}
}
}