diff options
Diffstat (limited to 'rootston/layer_shell.c')
-rw-r--r-- | rootston/layer_shell.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/rootston/layer_shell.c b/rootston/layer_shell.c index 895b0385..b6f7ba4c 100644 --- a/rootston/layer_shell.c +++ b/rootston/layer_shell.c @@ -312,6 +312,18 @@ void handle_layer_shell_surface(struct wl_listener *listener, void *data) { return; } + if (!layer_surface->output) { + struct roots_input *input = desktop->server->input; + struct roots_seat *seat = input_last_active_seat(input); + assert(seat); // Technically speaking we should handle this case + struct wlr_output *output = + wlr_output_layout_output_at(desktop->layout, + seat->cursor->cursor->x, + seat->cursor->cursor->y); + assert(output); // And this one + layer_surface->output = output; + } + roots_surface->surface_commit.notify = handle_surface_commit; wl_signal_add(&layer_surface->surface->events.commit, &roots_surface->surface_commit); |