diff options
Diffstat (limited to 'sway/desktop/render.c')
-rw-r--r-- | sway/desktop/render.c | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/sway/desktop/render.c b/sway/desktop/render.c index 7da54594..d6c3fa8c 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c | |||
@@ -836,21 +836,12 @@ void output_render(struct sway_output *output, struct timespec *when, | |||
836 | 836 | ||
837 | struct sway_container *workspace = output_get_active_workspace(output); | 837 | struct sway_container *workspace = output_get_active_workspace(output); |
838 | struct sway_view *fullscreen_view = workspace->current.ws_fullscreen; | 838 | struct sway_view *fullscreen_view = workspace->current.ws_fullscreen; |
839 | struct sway_seat *seat = input_manager_current_seat(input_manager); | 839 | |
840 | 840 | if (output_has_opaque_overlay_layer_surface(output)) { | |
841 | if (output_has_opaque_lockscreen(output, seat) && seat->focused_layer) { | 841 | goto render_overlay; |
842 | struct wlr_layer_surface *wlr_layer_surface = seat->focused_layer; | 842 | } |
843 | struct sway_layer_surface *sway_layer_surface = | 843 | |
844 | layer_from_wlr_layer_surface(seat->focused_layer); | 844 | if (fullscreen_view) { |
845 | struct render_data data = { | ||
846 | .output = output, | ||
847 | .damage = damage, | ||
848 | .alpha = 1.0f, | ||
849 | }; | ||
850 | output_surface_for_each_surface(wlr_layer_surface->surface, | ||
851 | sway_layer_surface->geo.x, sway_layer_surface->geo.y, | ||
852 | &data.root_geo, render_surface_iterator, &data); | ||
853 | } else if (fullscreen_view) { | ||
854 | float clear_color[] = {0.0f, 0.0f, 0.0f, 1.0f}; | 845 | float clear_color[] = {0.0f, 0.0f, 0.0f, 1.0f}; |
855 | 846 | ||
856 | int nrects; | 847 | int nrects; |
@@ -894,6 +885,8 @@ void output_render(struct sway_output *output, struct timespec *when, | |||
894 | render_layer(output, damage, | 885 | render_layer(output, damage, |
895 | &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_TOP]); | 886 | &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_TOP]); |
896 | } | 887 | } |
888 | |||
889 | render_overlay: | ||
897 | render_layer(output, damage, | 890 | render_layer(output, damage, |
898 | &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY]); | 891 | &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY]); |
899 | render_drag_icons(output, damage, &root_container.sway_root->drag_icons); | 892 | render_drag_icons(output, damage, &root_container.sway_root->drag_icons); |