mirror of
https://github.com/brl/mutter.git
synced 2024-12-24 12:02:04 +00:00
Add --nested command line argument
As of "core: start as wayland display server when XDG_SESSION_TYPE=wayland" it is no longer possible to run a nested mutter Wayland session on top of another Wayland session. This patch adds a command line argument to make it possible to force mutter to start as a nested compositor. https://bugzilla.gnome.org/show_bug.cgi?id=758658
This commit is contained in:
parent
7fe2873750
commit
c22bee19e1
@ -168,6 +168,7 @@ static gboolean opt_disable_sm;
|
|||||||
static gboolean opt_sync;
|
static gboolean opt_sync;
|
||||||
#ifdef HAVE_WAYLAND
|
#ifdef HAVE_WAYLAND
|
||||||
static gboolean opt_wayland;
|
static gboolean opt_wayland;
|
||||||
|
static gboolean opt_nested;
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_NATIVE_BACKEND
|
#ifdef HAVE_NATIVE_BACKEND
|
||||||
static gboolean opt_display_server;
|
static gboolean opt_display_server;
|
||||||
@ -216,6 +217,12 @@ static GOptionEntry meta_options[] = {
|
|||||||
N_("Run as a wayland compositor"),
|
N_("Run as a wayland compositor"),
|
||||||
NULL
|
NULL
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"nested", 0, 0, G_OPTION_ARG_NONE,
|
||||||
|
&opt_nested,
|
||||||
|
N_("Run as a nested compositor"),
|
||||||
|
NULL
|
||||||
|
},
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_NATIVE_BACKEND
|
#ifdef HAVE_NATIVE_BACKEND
|
||||||
{
|
{
|
||||||
@ -366,21 +373,30 @@ check_for_wayland_session_type (void)
|
|||||||
static void
|
static void
|
||||||
init_backend (void)
|
init_backend (void)
|
||||||
{
|
{
|
||||||
gboolean session_type_is_wayland = FALSE;
|
#ifdef HAVE_WAYLAND
|
||||||
|
gboolean run_as_wayland_compositor = opt_wayland;
|
||||||
|
|
||||||
#if defined(HAVE_WAYLAND) && defined(HAVE_NATIVE_BACKEND)
|
#ifdef HAVE_NATIVE_BACKEND
|
||||||
session_type_is_wayland = check_for_wayland_session_type ();
|
if (opt_nested && opt_display_server)
|
||||||
#endif
|
{
|
||||||
|
meta_warning ("Can't run both as nested and as a display server\n");
|
||||||
|
meta_exit (META_EXIT_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(CLUTTER_WINDOWING_EGL) && defined(HAVE_NATIVE_BACKEND)
|
if (!run_as_wayland_compositor)
|
||||||
if (opt_display_server || session_type_is_wayland)
|
run_as_wayland_compositor = check_for_wayland_session_type ();
|
||||||
|
|
||||||
|
#ifdef CLUTTER_WINDOWING_EGL
|
||||||
|
if (opt_display_server || (run_as_wayland_compositor && !opt_nested))
|
||||||
clutter_set_windowing_backend (CLUTTER_WINDOWING_EGL);
|
clutter_set_windowing_backend (CLUTTER_WINDOWING_EGL);
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
clutter_set_windowing_backend (CLUTTER_WINDOWING_X11);
|
clutter_set_windowing_backend (CLUTTER_WINDOWING_X11);
|
||||||
|
|
||||||
#ifdef HAVE_WAYLAND
|
#ifdef HAVE_WAYLAND
|
||||||
meta_set_is_wayland_compositor (opt_wayland || session_type_is_wayland);
|
meta_set_is_wayland_compositor (run_as_wayland_compositor);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user