diff options
author | Emmanuele Bassi <ebassi@gmail.com> | 2019-02-07 13:27:59 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gmail.com> | 2019-02-07 13:27:59 +0000 |
commit | b6039b5cf67844d535eb63eeb0e41f55f11602c6 (patch) | |
tree | e8ffd3f1f3ec91277b9c57e1924875226ca0cd7c | |
parent | 19eba3a7a63f884913264b67b07441328171dda3 (diff) | |
parent | 3809e7b3875ae688e0febe927e4afb71e7e4e841 (diff) | |
download | cogl-b6039b5cf67844d535eb63eeb0e41f55f11602c6.tar.gz |
Merge branch 'cogl-1.22' into 'cogl-1.22'
wayland: do not require wl_shell
See merge request GNOME/cogl!4
-rw-r--r-- | cogl/winsys/cogl-winsys-egl-wayland.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/cogl/winsys/cogl-winsys-egl-wayland.c b/cogl/winsys/cogl-winsys-egl-wayland.c index dad7b1e4..7f4999d0 100644 --- a/cogl/winsys/cogl-winsys-egl-wayland.c +++ b/cogl/winsys/cogl-winsys-egl-wayland.c @@ -279,12 +279,12 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer, * compostor and shell object. */ wl_display_roundtrip (wayland_renderer->wayland_display); - if (!wayland_renderer->wayland_compositor || !wayland_renderer->wayland_shell) + if (!wayland_renderer->wayland_compositor) { _cogl_set_error (error, COGL_WINSYS_ERROR, COGL_WINSYS_ERROR_INIT, - "Unable to find wl_compositor or wl_shell"); + "Unable to find wl_compositor"); goto error; } @@ -520,9 +520,19 @@ _cogl_winsys_egl_onscreen_init (CoglOnscreen *onscreen, NULL); if (!onscreen->foreign_surface) - wayland_onscreen->wayland_shell_surface = - wl_shell_get_shell_surface (wayland_renderer->wayland_shell, - wayland_onscreen->wayland_surface); + { + if (!wayland_renderer->wayland_shell) + { + _cogl_set_error (error, COGL_WINSYS_ERROR, + COGL_WINSYS_ERROR_CREATE_ONSCREEN, + "No foreign surface, and wl_shell unsupported by the compositor"); + return FALSE; + } + + wayland_onscreen->wayland_shell_surface = + wl_shell_get_shell_surface (wayland_renderer->wayland_shell, + wayland_onscreen->wayland_surface); + } return TRUE; } |