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 b6ccd830..8cb1d8e9 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c | |||
@@ -752,6 +752,18 @@ void seat_set_focus(struct sway_seat *seat, struct sway_node *node) { | |||
752 | return; | 752 | return; |
753 | } | 753 | } |
754 | } | 754 | } |
755 | // Deny setting focus to a workspace node when using fullscreen global | ||
756 | if (root->fullscreen_global && !container && new_workspace) { | ||
757 | return; | ||
758 | } | ||
759 | // Deny setting focus to a view which is hidden by a fullscreen global | ||
760 | if (root->fullscreen_global && container != root->fullscreen_global && | ||
761 | !container_has_ancestor(container, root->fullscreen_global)) { | ||
762 | // Unless it's a transient container | ||
763 | if (!container_is_transient_for(container, root->fullscreen_global)) { | ||
764 | return; | ||
765 | } | ||
766 | } | ||
755 | 767 | ||
756 | struct sway_output *new_output = new_workspace->output; | 768 | struct sway_output *new_output = new_workspace->output; |
757 | 769 | ||