From abef37f5ee46b45471e4e77862abe2c4ba40d571 Mon Sep 17 00:00:00 2001 From: Bilal Elmoussaoui Date: Mon, 9 May 2022 11:48:57 +0200 Subject: [PATCH] core: Add a copy of GDK_PRIORITY_EVENTS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Quoting Carlos: The META_PRIORITY_EVENTS ± 1 happening below are in order to set these idles and timeouts in a priority that is relative to the literal GDK event priority, making those diverge is a likely way to sneakily break things. But that's unlikely to happen, and decoupling mutter from GTK further should make it moot, so perhaps it's alright after all. Part-of: --- src/core/events.h | 8 ++++++++ src/tests/meson.build | 3 +++ src/tests/test-client.c | 4 +++- src/wayland/meta-wayland.c | 3 ++- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/core/events.h b/src/core/events.h index 6338119ae..5b48d3905 100644 --- a/src/core/events.h +++ b/src/core/events.h @@ -25,6 +25,14 @@ #include "meta/display.h" +/** + * META_PRIORITY_EVENTS: (value 0) + * + * This is the priority that events from the X server are given in the main loop. + */ +#define META_PRIORITY_EVENTS (G_PRIORITY_DEFAULT) + + void meta_display_init_events (MetaDisplay *display); void meta_display_free_events (MetaDisplay *display); diff --git a/src/tests/meson.build b/src/tests/meson.build index f28436a40..d6ef39dca 100644 --- a/src/tests/meson.build +++ b/src/tests/meson.build @@ -126,6 +126,9 @@ test_client = executable('mutter-test-client', gio_unix_dep, x11_dep, xext_dep, + graphene_dep, + json_glib_dep, + gsettings_desktop_schemas_dep, ], install: have_installed_tests, install_dir: mutter_installed_tests_libexecdir, diff --git a/src/tests/test-client.c b/src/tests/test-client.c index 7e4235f3a..a468e6137 100644 --- a/src/tests/test-client.c +++ b/src/tests/test-client.c @@ -28,6 +28,8 @@ #include #include +#include "core/events.h" + const char *client_id = "0"; static gboolean wayland; GHashTable *windows; @@ -156,7 +158,7 @@ ensure_xsource_handler (GdkDisplay *gdkdisplay) x_source->event_poll_fd.events = G_IO_IN; g_source_add_poll (source, &x_source->event_poll_fd); - g_source_set_priority (source, GDK_PRIORITY_EVENTS - 1); + g_source_set_priority (source, META_PRIORITY_EVENTS - 1); g_source_set_can_recurse (source, TRUE); g_source_attach (source, NULL); diff --git a/src/wayland/meta-wayland.c b/src/wayland/meta-wayland.c index 44f11df50..2114583ff 100644 --- a/src/wayland/meta-wayland.c +++ b/src/wayland/meta-wayland.c @@ -31,6 +31,7 @@ #include "clutter/clutter.h" #include "cogl/cogl-egl.h" #include "compositor/meta-surface-actor-wayland.h" +#include "core/events.h" #include "core/meta-context-private.h" #include "wayland/meta-wayland-activation.h" #include "wayland/meta-wayland-buffer.h" @@ -594,7 +595,7 @@ meta_wayland_compositor_new (MetaContext *context) * relating to X clients when we don't know what's happened to them * according to the X protocol. */ - g_source_set_priority (wayland_event_source, GDK_PRIORITY_EVENTS + 1); + g_source_set_priority (wayland_event_source, META_PRIORITY_EVENTS + 1); g_source_attach (wayland_event_source, NULL); compositor->source = wayland_event_source; g_source_unref (wayland_event_source);