desktop: Fix Xwayland build 40/29140/1
authorMarius Vlad <marius.vlad@collabora.com>
Thu, 17 Aug 2023 11:59:24 +0000 (14:59 +0300)
committerMarius Vlad <marius.vlad@collabora.com>
Thu, 17 Aug 2023 12:09:44 +0000 (15:09 +0300)
Turns out weston doesn't install xwayland-api header if Xwayland is not
installed, which is a shame, and should be rectified. Meanwhile, let's
guard access to the header and the API that the header exports.

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I77638b263483628f8cc7a3dcbd08c8947db1d86b

src/desktop.c

index 0186e9f..3fd09bc 100644 (file)
@@ -30,7 +30,9 @@
 #include "shared/helpers.h"
 #include <libweston/libweston.h>
 #include <libweston-desktop/libweston-desktop.h>
+#ifdef BUILD_XWAYLAND
 #include <libweston/xwayland-api.h>
+#endif
 
 #include "agl-shell-desktop-server-protocol.h"
 
@@ -556,6 +558,7 @@ ivi_shell_destroy(struct wl_listener *listener, void *data)
 static void
 transform_handler(struct wl_listener *listener, void *data)
 {
+#ifdef BUILD_XWAYLAND
        struct weston_surface *surface = data;
        struct ivi_surface *ivisurf = get_ivi_shell_surface(surface);
        const struct weston_xwayland_surface_api *api;
@@ -580,11 +583,13 @@ transform_handler(struct wl_listener *listener, void *data)
        y = ivisurf->view->geometry.y;
 
        api->send_position(surface, x, y);
+#endif
 }
 
 bool
 is_shell_surface_xwayland(struct ivi_surface *surf)
 {
+#ifdef BUILD_XWAYLAND
        const struct weston_xwayland_surface_api *api;
        struct ivi_compositor *ivi = surf->ivi;
        struct weston_surface *surface;
@@ -596,6 +601,9 @@ is_shell_surface_xwayland(struct ivi_surface *surf)
 
        surface = weston_desktop_surface_get_surface(surf->dsurface);
        return api->is_xwayland_surface(surface);
+#else
+       return false;
+#endif
 }
 
 int