diff options
Diffstat (limited to 'sway/input/seat.c')
-rw-r--r-- | sway/input/seat.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sway/input/seat.c b/sway/input/seat.c index fd5eda2d..f216810b 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c | |||
@@ -753,6 +753,18 @@ void seat_set_focus(struct sway_seat *seat, struct sway_node *node) { | |||
753 | return; | 753 | return; |
754 | } | 754 | } |
755 | } | 755 | } |
756 | // Deny setting focus to a workspace node when using fullscreen global | ||
757 | if (root->fullscreen_global && !container && new_workspace) { | ||
758 | return; | ||
759 | } | ||
760 | // Deny setting focus to a view which is hidden by a fullscreen global | ||
761 | if (root->fullscreen_global && container != root->fullscreen_global && | ||
762 | !container_has_ancestor(container, root->fullscreen_global)) { | ||
763 | // Unless it's a transient container | ||
764 | if (!container_is_transient_for(container, root->fullscreen_global)) { | ||
765 | return; | ||
766 | } | ||
767 | } | ||
756 | 768 | ||
757 | struct sway_output *new_output = new_workspace->output; | 769 | struct sway_output *new_output = new_workspace->output; |
758 | 770 | ||