summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2018-11-12 11:29:44 +0100
committerJonas Ådahl <jadahl@gmail.com>2018-11-14 15:55:45 +0100
commitbd624e4dfb4de728b5cd8ed9e5fd2d6d6104b84f (patch)
tree4ee4bc74d16eb318785c3f92a854121d51954db5
parentfe1d9fb4a73612681b0351202721fdfca179a0f5 (diff)
downloadmutter-bd624e4dfb4de728b5cd8ed9e5fd2d6d6104b84f.tar.gz
tests: Override X11 display number
As with the Wayland display name, to avoid clashes with already an running Xwayland or Xorg instance, override the X11 display name to something less likely to cause a clash. https://gitlab.gnome.org/GNOME/mutter/issues/193
-rw-r--r--src/tests/test-utils.c2
-rw-r--r--src/wayland/meta-xwayland.c16
-rw-r--r--src/wayland/meta-xwayland.h3
3 files changed, 16 insertions, 5 deletions
diff --git a/src/tests/test-utils.c b/src/tests/test-utils.c
index 8ffaff14f..b752bf94c 100644
--- a/src/tests/test-utils.c
+++ b/src/tests/test-utils.c
@@ -27,6 +27,7 @@
#include "core/display-private.h"
#include "core/window-private.h"
#include "wayland/meta-wayland.h"
+#include "wayland/meta-xwayland.h"
#include "x11/meta-x11-display-private.h"
struct _TestClient {
@@ -94,6 +95,7 @@ test_init (int *argc,
ensure_test_client_path (*argc, *argv);
meta_wayland_override_display_name ("mutter-test-display");
+ meta_xwayland_override_display_number (512);
}
AsyncWaiter *
diff --git a/src/wayland/meta-xwayland.c b/src/wayland/meta-xwayland.c
index 7cd99a072..be29033cf 100644
--- a/src/wayland/meta-xwayland.c
+++ b/src/wayland/meta-xwayland.c
@@ -59,6 +59,8 @@ G_DEFINE_TYPE (MetaWaylandSurfaceRoleXWayland,
meta_wayland_surface_role_xwayland,
META_TYPE_WAYLAND_ACTOR_SURFACE)
+static int display_number_override = -1;
+
void
meta_xwayland_associate_window_with_surface (MetaWindow *window,
MetaWaylandSurface *surface)
@@ -371,6 +373,12 @@ x_io_error (Display *display)
return 0;
}
+void
+meta_xwayland_override_display_number (int number)
+{
+ display_number_override = number;
+}
+
static gboolean
choose_xdisplay (MetaXWaylandManager *manager)
{
@@ -378,11 +386,9 @@ choose_xdisplay (MetaXWaylandManager *manager)
char *lock_file = NULL;
gboolean fatal = FALSE;
- /* Hack to keep the unused Xwayland instance on
- * the login screen from taking the prime :0 display
- * number.
- */
- if (g_getenv ("RUNNING_UNDER_GDM") != NULL)
+ if (display_number_override != -1)
+ display = display_number_override;
+ else if (!g_getenv ("RUNNING_UNDER_GDM"))
display = 1024;
do
diff --git a/src/wayland/meta-xwayland.h b/src/wayland/meta-xwayland.h
index 9cb4c0b1d..0d120fee0 100644
--- a/src/wayland/meta-xwayland.h
+++ b/src/wayland/meta-xwayland.h
@@ -31,6 +31,9 @@
#include "wayland/meta-wayland-types.h"
void
+meta_xwayland_override_display_number (int number);
+
+void
meta_xwayland_handle_wl_surface_id (MetaWindow *window,
guint32 surface_id);