summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2023-08-17 14:59:24 +0300
committerMarius Vlad <marius.vlad@collabora.com>2023-08-17 15:09:44 +0300
commita68408367cf5e254d981e1d43ba261b9aade6166 (patch)
tree8b47f5925eb041edbede034c4e95f2ea24d0db6d
parent5ec94158612e8ba9aed0de43c9f5f40d6f61f0cd (diff)
desktop: Fix Xwayland build
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
-rw-r--r--src/desktop.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/desktop.c b/src/desktop.c
index 0186e9f..3fd09bc 100644
--- a/src/desktop.c
+++ b/src/desktop.c
@@ -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