diff options
Diffstat (limited to 'sway/input/cursor.c')
-rw-r--r-- | sway/input/cursor.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sway/input/cursor.c b/sway/input/cursor.c index 15a61cbf..a19f0752 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include "sway/layers.h" | 12 | #include "sway/layers.h" |
13 | #include "sway/output.h" | 13 | #include "sway/output.h" |
14 | #include "sway/tree/view.h" | 14 | #include "sway/tree/view.h" |
15 | #include "sway/tree/workspace.h" | ||
15 | #include "wlr-layer-shell-unstable-v1-protocol.h" | 16 | #include "wlr-layer-shell-unstable-v1-protocol.h" |
16 | 17 | ||
17 | static struct wlr_surface *layer_surface_at(struct sway_output *output, | 18 | static struct wlr_surface *layer_surface_at(struct sway_output *output, |
@@ -83,6 +84,16 @@ static struct sway_container *container_at_cursor(struct sway_cursor *cursor, | |||
83 | ox, oy, sx, sy))) { | 84 | ox, oy, sx, sy))) { |
84 | return ws; | 85 | return ws; |
85 | } | 86 | } |
87 | if (ws->sway_workspace->fullscreen) { | ||
88 | struct wlr_surface *wlr_surface = ws->sway_workspace->fullscreen->surface; | ||
89 | if (wlr_surface_point_accepts_input(wlr_surface, ox, oy)) { | ||
90 | *sx = ox; | ||
91 | *sy = oy; | ||
92 | *surface = wlr_surface; | ||
93 | return ws->sway_workspace->fullscreen->swayc; | ||
94 | } | ||
95 | return NULL; | ||
96 | } | ||
86 | if ((*surface = layer_surface_at(output, | 97 | if ((*surface = layer_surface_at(output, |
87 | &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_TOP], | 98 | &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_TOP], |
88 | ox, oy, sx, sy))) { | 99 | ox, oy, sx, sy))) { |