[mutter/bilelmoussaoui/x11-build-guards: 1/2] Compositor: Guard X11 types
- From: Bilal Elmoussaoui <bilelmoussaoui src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/bilelmoussaoui/x11-build-guards: 1/2] Compositor: Guard X11 types
- Date: Tue, 31 May 2022 10:02:42 +0000 (UTC)
commit 78b8fe90ad8234b77590eee61ad9275a6bcec4c0
Author: Bilal Elmoussaoui <belmouss redhat com>
Date: Tue May 31 11:42:47 2022 +0200
Compositor: Guard X11 types
Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/2272
src/compositor/compositor-private.h | 2 ++
src/compositor/compositor.c | 40 ++++++++++++++++++++++++++-----------
src/core/display.c | 18 ++++++++++++-----
3 files changed, 43 insertions(+), 17 deletions(-)
---
diff --git a/src/compositor/compositor-private.h b/src/compositor/compositor-private.h
index d3b3145a35..d1fbd1635b 100644
--- a/src/compositor/compositor-private.h
+++ b/src/compositor/compositor-private.h
@@ -60,7 +60,9 @@ MetaInhibitShortcutsDialog * meta_compositor_create_inhibit_shortcuts_dialog (Me
void meta_compositor_locate_pointer (MetaCompositor *compositor);
+#ifdef HAVE_X11_CLIENT
void meta_compositor_redirect_x11_windows (MetaCompositor *compositor);
+#endif
gboolean meta_compositor_is_unredirect_inhibited (MetaCompositor *compositor);
diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
index 6f4982553c..e4d50afc9e 100644
--- a/src/compositor/compositor.c
+++ b/src/compositor/compositor.c
@@ -54,15 +54,9 @@
#include "compositor/compositor-private.h"
-#include <X11/extensions/Xcomposite.h>
-
-#include "backends/x11/meta-backend-x11.h"
-#include "backends/x11/meta-event-x11.h"
-#include "backends/x11/meta-stage-x11.h"
#include "clutter/clutter-mutter.h"
#include "cogl/cogl.h"
#include "compositor/meta-later-private.h"
-#include "compositor/meta-window-actor-x11.h"
#include "compositor/meta-window-actor-private.h"
#include "compositor/meta-window-group-private.h"
#include "core/frame.h"
@@ -75,16 +69,27 @@
#include "meta/meta-background-group.h"
#include "meta/meta-context.h"
#include "meta/meta-shadow-factory.h"
-#include "meta/meta-x11-errors.h"
#include "meta/prefs.h"
#include "meta/window.h"
-#include "x11/meta-x11-display-private.h"
#ifdef HAVE_WAYLAND
#include "compositor/meta-window-actor-wayland.h"
#include "wayland/meta-wayland-private.h"
#endif
+#ifdef HAVE_X11_CLIENT
+#include <X11/extensions/Xcomposite.h>
+
+#include "backends/x11/meta-backend-x11.h"
+#include "backends/x11/meta-event-x11.h"
+#include "backends/x11/meta-stage-x11.h"
+
+#include "compositor/meta-window-actor-x11.h"
+
+#include "meta/meta-x11-errors.h"
+#include "x11/meta-x11-display-private.h"
+#endif
+
enum
{
PROP_0,
@@ -305,6 +310,7 @@ void
meta_focus_stage_window (MetaDisplay *display,
guint32 timestamp)
{
+#ifdef HAVE_X11_CLIENT
ClutterStage *stage;
Window window;
@@ -320,18 +326,19 @@ meta_focus_stage_window (MetaDisplay *display,
meta_x11_display_set_input_focus_xwindow (display->x11_display,
window,
timestamp);
+#endif
}
gboolean
meta_stage_is_focused (MetaDisplay *display)
{
- ClutterStage *stage;
- Window window;
-
if (meta_is_wayland_compositor ())
return TRUE;
- stage = CLUTTER_STAGE (meta_get_stage_for_display (display));
+#ifdef HAVE_X11_CLIENT
+ ClutterStage *stage = CLUTTER_STAGE (meta_get_stage_for_display (display));
+ Window window;
+
if (!stage)
return FALSE;
@@ -341,6 +348,9 @@ meta_stage_is_focused (MetaDisplay *display)
return FALSE;
return (display->x11_display->focus_xwindow == window);
+#else
+ return FALSE;
+#endif
}
void
@@ -355,6 +365,7 @@ meta_compositor_grab_end (MetaCompositor *compositor)
META_COMPOSITOR_GET_CLASS (compositor)->grab_end (compositor);
}
+#ifdef HAVE_X11_CLIENT
static void
redirect_windows (MetaX11Display *x11_display)
{
@@ -409,6 +420,7 @@ meta_compositor_redirect_x11_windows (MetaCompositor *compositor)
if (display->x11_display)
redirect_windows (display->x11_display);
}
+#endif
gboolean
meta_compositor_do_manage (MetaCompositor *compositor,
@@ -483,9 +495,11 @@ meta_compositor_add_window (MetaCompositor *compositor,
switch (window->client_type)
{
+#ifdef HAVE_X11_CLIENT
case META_WINDOW_CLIENT_TYPE_X11:
window_actor_type = META_TYPE_WINDOW_ACTOR_X11;
break;
+#endif
#ifdef HAVE_WAYLAND
case META_WINDOW_CLIENT_TYPE_WAYLAND:
@@ -571,7 +585,9 @@ meta_compositor_window_shape_changed (MetaCompositor *compositor,
if (!window_actor)
return;
+#ifdef HAVE_X11_CLIENT
meta_window_actor_x11_update_shape (META_WINDOW_ACTOR_X11 (window_actor));
+#endif
}
void
diff --git a/src/core/display.c b/src/core/display.c
index 2145fde0db..56e911a359 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -694,6 +694,7 @@ on_monitor_privacy_screen_changed (MetaDisplay *display,
: _("Privacy Screen Disabled"));
}
+#ifdef HAVE_X11_CLIENT
static gboolean
meta_display_init_x11_display (MetaDisplay *display,
GError **error)
@@ -719,7 +720,6 @@ meta_display_init_x11_display (MetaDisplay *display,
return TRUE;
}
-#ifdef HAVE_WAYLAND
gboolean
meta_display_init_x11_finish (MetaDisplay *display,
GAsyncResult *result,
@@ -818,7 +818,7 @@ on_x11_initialized (MetaDisplay *display,
if (!meta_display_init_x11_finish (display, result, &error))
g_critical ("Failed to init X11 display: %s", error->message);
}
-#endif
+#endif /* HAVE_X11_CLIENT */
void
meta_display_shutdown_x11 (MetaDisplay *display)
@@ -933,10 +933,12 @@ meta_display_new (MetaContext *context,
{
MetaWaylandCompositor *wayland_compositor =
meta_wayland_compositor_get_default ();
- MetaX11DisplayPolicy x11_display_policy;
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);
if (x11_display_policy == META_X11_DISPLAY_POLICY_MANDATORY)
{
@@ -944,11 +946,12 @@ meta_display_new (MetaContext *context,
(GAsyncReadyCallback) on_x11_initialized,
NULL);
}
-
+#endif /* HAVE_XWAYLAND */
timestamp = meta_display_get_current_time_roundtrip (display);
}
else
-#endif
+#endif /* HAVE_WAYLAND */
+#ifdef HAVE_X11
{
if (!meta_display_init_x11_display (display, error))
{
@@ -958,6 +961,11 @@ meta_display_new (MetaContext *context,
timestamp = display->x11_display->timestamp;
}
+#else
+ {
+ g_assert_not_reached ();
+ }
+#endif
display->last_focus_time = timestamp;
display->last_user_time = timestamp;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]