Improve rendering with a fullscreen opaque overlay surface

The rendering code doesn't use the exclusive input surface at all
anymore to decide to skip rendering of shell surfaces. This fixes
a weird situation in which a client requests exclusive input but
isn't an overlay layer surface.

The renderer also renders all overlay surfaces in this situation,
not just one. This simplifies the code and fixes rendering when
there are more than one overlay surfaces (e.g. for a virtual
keyboard to type the lockscreen password).
This commit is contained in:
emersion 2018-07-25 08:50:06 +01:00
parent 224ade1382
commit 0e79b2114c
3 changed files with 16 additions and 34 deletions

View file

@ -65,8 +65,7 @@ struct sway_container *output_by_name(const char *name);
void output_enable(struct sway_output *output);
bool output_has_opaque_lockscreen(struct sway_output *output,
struct sway_seat *seat);
bool output_has_opaque_overlay_layer_surface(struct sway_output *output);
struct sway_container *output_get_active_workspace(struct sway_output *output);