summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBilal Elmoussaoui <belmouss@redhat.com>2022-06-01 10:35:29 +0200
committerBilal Elmoussaoui <belmouss@redhat.com>2023-03-28 11:24:03 +0200
commit891f322d25ed317050ea9d8aac781cca54bd6470 (patch)
tree5a85d2e8e068c1a4b966d11ffee508932844343d
parent8e510d013760790688e9b6b2186d70d0d41f586f (diff)
downloadmutter-891f322d25ed317050ea9d8aac781cca54bd6470.tar.gz
wayland: Guard XWayland types
-rw-r--r--src/core/display.c3
-rw-r--r--src/tests/meta-test-utils.c7
-rw-r--r--src/wayland/meta-wayland-pointer-constraints.c3
-rw-r--r--src/wayland/meta-wayland-private.h2
-rw-r--r--src/wayland/meta-wayland.c5
-rw-r--r--src/wayland/meta-wayland.h4
6 files changed, 20 insertions, 4 deletions
diff --git a/src/core/display.c b/src/core/display.c
index b062daa11..9f4f2c609 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -934,12 +934,13 @@ meta_display_new (MetaContext *context,
#ifdef HAVE_WAYLAND
if (meta_is_wayland_compositor ())
{
+
+#ifdef HAVE_XWAYLAND
MetaWaylandCompositor *wayland_compositor =
wayland_compositor_from_display (display);
meta_wayland_compositor_init_display (wayland_compositor, display);
-#ifdef HAVE_XWAYLAND
MetaX11DisplayPolicy x11_display_policy;
x11_display_policy = meta_context_get_x11_display_policy (context);
diff --git a/src/tests/meta-test-utils.c b/src/tests/meta-test-utils.c
index 416dc0b64..2b9a791bd 100644
--- a/src/tests/meta-test-utils.c
+++ b/src/tests/meta-test-utils.c
@@ -613,7 +613,9 @@ meta_test_client_new (MetaContext *context,
ClientProcessHandler *process_handler;
MetaWaylandCompositor *compositor;
const char *wayland_display_name;
+#ifdef HAVE_XWAYLAND
const char *x11_display_name;
+#endif
launcher = g_subprocess_launcher_new ((G_SUBPROCESS_FLAGS_STDIN_PIPE |
G_SUBPROCESS_FLAGS_STDOUT_PIPE));
@@ -621,8 +623,9 @@ meta_test_client_new (MetaContext *context,
g_assert (meta_is_wayland_compositor ());
compositor = meta_context_get_wayland_compositor (context);
wayland_display_name = meta_wayland_get_wayland_display_name (compositor);
+#ifdef HAVE_XWAYLAND
x11_display_name = meta_wayland_get_public_xwayland_display_name (compositor);
-
+#endif
if (wayland_display_name)
{
g_subprocess_launcher_setenv (launcher,
@@ -630,12 +633,14 @@ meta_test_client_new (MetaContext *context,
TRUE);
}
+#ifdef HAVE_XWAYLAND
if (x11_display_name)
{
g_subprocess_launcher_setenv (launcher,
"DISPLAY", x11_display_name,
TRUE);
}
+#endif
subprocess = g_subprocess_launcher_spawn (launcher,
error,
diff --git a/src/wayland/meta-wayland-pointer-constraints.c b/src/wayland/meta-wayland-pointer-constraints.c
index 40dd2095e..daf222665 100644
--- a/src/wayland/meta-wayland-pointer-constraints.c
+++ b/src/wayland/meta-wayland-pointer-constraints.c
@@ -474,8 +474,10 @@ should_constraint_be_enabled (MetaWaylandPointerConstraint *constraint)
* associate the X11 Window with the wl_surface.
* For subsurfaces the window of the ancestor might be gone already.
*/
+#ifdef HAVE_XWAYLAND
g_warn_if_fail (meta_xwayland_is_xwayland_surface (constraint->surface) ||
META_IS_WAYLAND_SUBSURFACE (constraint->surface->role));
+#endif
return FALSE;
}
#endif
@@ -633,7 +635,6 @@ meta_wayland_pointer_constraint_calculate_effective_region (MetaWaylandPointerCo
#ifdef HAVE_XWAYLAND
g_assert (meta_xwayland_is_xwayland_surface (constraint->surface));
#endif
-
actual_width = window->buffer_rect.width - (frame->child_x +
frame->right_width);
actual_height = window->buffer_rect.height - (frame->child_y +
diff --git a/src/wayland/meta-wayland-private.h b/src/wayland/meta-wayland-private.h
index a6bf9cc0a..2a28ccd61 100644
--- a/src/wayland/meta-wayland-private.h
+++ b/src/wayland/meta-wayland-private.h
@@ -92,7 +92,9 @@ struct _MetaWaylandCompositor
GHashTable *outputs;
GList *frame_callback_surfaces;
+#ifdef HAVE_XWAYLAND
MetaXWaylandManager xwayland_manager;
+#endif
MetaWaylandSeat *seat;
MetaWaylandTabletManager *tablet_manager;
diff --git a/src/wayland/meta-wayland.c b/src/wayland/meta-wayland.c
index 61f22803f..afad52f35 100644
--- a/src/wayland/meta-wayland.c
+++ b/src/wayland/meta-wayland.c
@@ -712,7 +712,6 @@ meta_wayland_compositor_new (MetaContext *context)
set_gnome_env ("XAUTHORITY", compositor->xwayland_manager.auth_file);
}
#endif
-
set_gnome_env ("WAYLAND_DISPLAY", meta_wayland_get_wayland_display_name (compositor));
return compositor;
@@ -724,6 +723,7 @@ meta_wayland_get_wayland_display_name (MetaWaylandCompositor *compositor)
return compositor->display_name;
}
+#ifdef HAVE_XWAYLAND
const char *
meta_wayland_get_public_xwayland_display_name (MetaWaylandCompositor *compositor)
{
@@ -735,6 +735,7 @@ meta_wayland_get_private_xwayland_display_name (MetaWaylandCompositor *composito
{
return compositor->xwayland_manager.private_connection.name;
}
+#endif /* HAVE_XWAYLAND */
void
meta_wayland_compositor_restore_shortcuts (MetaWaylandCompositor *compositor,
@@ -834,7 +835,9 @@ meta_wayland_compositor_notify_surface_id (MetaWaylandCompositor *compositor,
GINT_TO_POINTER (id));
if (window)
{
+#ifdef HAVE_XWAYLAND
meta_xwayland_associate_window_with_surface (window, surface);
+#endif
meta_wayland_compositor_remove_surface_association (compositor, id);
}
}
diff --git a/src/wayland/meta-wayland.h b/src/wayland/meta-wayland.h
index e0e5c9251..f842d6f18 100644
--- a/src/wayland/meta-wayland.h
+++ b/src/wayland/meta-wayland.h
@@ -72,10 +72,12 @@ GQueue *meta_wayland_compositor_get_committed_transactions (Meta
META_EXPORT_TEST
const char *meta_wayland_get_wayland_display_name (MetaWaylandCompositor *compositor);
+#ifdef HAVE_XWAYLAND
META_EXPORT_TEST
const char *meta_wayland_get_public_xwayland_display_name (MetaWaylandCompositor *compositor);
const char *meta_wayland_get_private_xwayland_display_name (MetaWaylandCompositor *compositor);
+#endif
void meta_wayland_compositor_restore_shortcuts (MetaWaylandCompositor *compositor,
ClutterInputDevice *source);
@@ -94,8 +96,10 @@ void meta_wayland_compositor_notify_surface_id (MetaWaylandCo
int id,
MetaWaylandSurface *surface);
+#ifdef HAVE_XWAYLAND
META_EXPORT_TEST
MetaXWaylandManager * meta_wayland_compositor_get_xwayland_manager (MetaWaylandCompositor *compositor);
+#endif
#endif