mutter/0004-output-Add-pause-resume-signals.patch
2025-05-21 16:38:56 +02:00

82 lines
2.4 KiB
Diff

From 96d4ce647bd73095a5b0789d224271a912582f21 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Mon, 31 Mar 2025 14:55:45 +0200
Subject: [PATCH 4/5] output: Add pause/resume signals
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
These gets signalled when the logind session becomes inactive/active,
e.g. VT switches.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4378>
(cherry picked from commit 288168f7f73ee84208500fe5e6bda6e9cdbc3a39)
---
src/backends/native/meta-backend-native.c | 29 +++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/src/backends/native/meta-backend-native.c b/src/backends/native/meta-backend-native.c
index 85bfeb7810..b81b53d29e 100644
--- a/src/backends/native/meta-backend-native.c
+++ b/src/backends/native/meta-backend-native.c
@@ -79,6 +79,16 @@ enum
static GParamSpec *obj_props[N_PROPS];
+enum
+{
+ PAUSE,
+ RESUME,
+
+ N_SIGNALS
+};
+
+static guint signals[N_SIGNALS];
+
typedef struct _MetaBackendNativePrivate
{
MetaBackend parent;
@@ -869,6 +879,21 @@ meta_backend_native_class_init (MetaBackendNativeClass *klass)
G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (object_class, N_PROPS, obj_props);
+
+ signals[PAUSE] =
+ g_signal_new ("pause",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 0);
+ signals[RESUME] =
+ g_signal_new ("resume",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 0);
}
static void
@@ -961,6 +986,8 @@ meta_backend_native_pause (MetaBackendNative *backend_native)
COGL_TRACE_BEGIN_SCOPED (MetaBackendNativePause,
"Meta::BackendNative::pause()");
+ g_signal_emit (backend_native, signals[PAUSE], 0);
+
meta_seat_native_release_devices (seat);
meta_renderer_pause (renderer);
meta_udev_pause (priv->udev);
@@ -1004,6 +1031,8 @@ void meta_backend_native_resume (MetaBackendNative *native)
meta_input_settings_maybe_restore_numlock_state (input_settings);
clutter_seat_ensure_a11y_state (CLUTTER_SEAT (seat));
+
+ g_signal_emit (native, signals[RESUME], 0);
}
static MetaRenderDevice *
--
2.49.0