summaryrefslogtreecommitdiffstats
path: root/src/ivi-compositor.h
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2020-02-06 15:25:54 +0200
committerMarius Vlad <marius.vlad@collabora.com>2020-02-07 13:13:09 +0200
commitb43a012824af0165f3716c7986888213420885aa (patch)
tree4b5b9f8e921f7bc3c5384002b0b539cf1bb652af /src/ivi-compositor.h
parent433edac095bb142e6024314e39409afacbfaa5c2 (diff)
shell: Add a black surface in the fullscreen layer
Now that we're capable of restarting the client shell without the need to restart the compositor, create a black surface and insert in the fullscreen layer as to denote that the client shell is no longer running. This black surface is removed when the 'ready' request is received and inserted back when the client shell unbinds from the agl-shell protocol. Also, we were missing implementation protocol specification as the presentation delay required a black surface being displayed instead, so this brings the implementation closer to that of the protocol specification. Bug-SPEC: SPEC-3161 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I40f01135583eea8af78d3077cdad97ad5ad450f5
Diffstat (limited to 'src/ivi-compositor.h')
-rw-r--r--src/ivi-compositor.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/ivi-compositor.h b/src/ivi-compositor.h
index 3d7bd25..5d210fb 100644
--- a/src/ivi-compositor.h
+++ b/src/ivi-compositor.h
@@ -103,6 +103,12 @@ struct ivi_output {
struct ivi_surface *left;
struct ivi_surface *right;
+ /* for the black surface */
+ struct fullscreen_view {
+ struct ivi_surface *fs;
+ struct wl_listener fs_destroy;
+ } fullscreen_view;
+
struct wl_listener output_destroy;
/*
@@ -193,6 +199,9 @@ ivi_agl_systemd_notify(struct ivi_compositor *ivi)
int
ivi_shell_init(struct ivi_compositor *ivi);
+void
+ivi_shell_init_black_fs(struct ivi_compositor *ivi);
+
int
ivi_shell_create_global(struct ivi_compositor *ivi);