[gnome-flashback] idle-monitor: add ResetIdletime API, for testing purposes



commit dfa6a9463660512148243561ef53874c3612bfe0
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Tue May 24 23:42:21 2022 +0300

    idle-monitor: add ResetIdletime API, for testing purposes
    
    Based on mutter commits:
    https://gitlab.gnome.org/GNOME/mutter/-/commit/01a0fa9437b9d4ca74e3
    https://gitlab.gnome.org/GNOME/mutter/-/commit/ef2153739cb75348ee5e

 daemons/idle-monitor/flashback-idle-monitor.c      | 27 ++++++++++++++++++++++
 .../idle-monitor/org.gnome.Mutter.IdleMonitor.xml  |  2 ++
 2 files changed, 29 insertions(+)
---
diff --git a/daemons/idle-monitor/flashback-idle-monitor.c b/daemons/idle-monitor/flashback-idle-monitor.c
index 5b05476..51893b4 100644
--- a/daemons/idle-monitor/flashback-idle-monitor.c
+++ b/daemons/idle-monitor/flashback-idle-monitor.c
@@ -73,6 +73,31 @@ handle_get_idletime (MetaDBusIdleMonitor   *skeleton,
   return TRUE;
 }
 
+static gboolean
+handle_reset_idletime (MetaDBusIdleMonitor   *skeleton,
+                       GDBusMethodInvocation *invocation,
+                       MetaIdleMonitor       *monitor)
+{
+  if (g_getenv ("MUTTER_DEBUG_RESET_IDLETIME") == NULL)
+    {
+      const char *message;
+
+      message = "This method is for testing purposes only. "
+                "MUTTER_DEBUG_RESET_IDLETIME must be set to use it!";
+
+      g_dbus_method_invocation_return_error_literal (invocation,
+                                                     G_DBUS_ERROR,
+                                                     G_DBUS_ERROR_UNKNOWN_METHOD,
+                                                     message);
+      return TRUE;
+    }
+
+  meta_idle_monitor_reset_idletime (monitor);
+  meta_dbus_idle_monitor_complete_reset_idletime (skeleton, invocation);
+
+  return TRUE;
+}
+
 typedef struct {
   MetaDBusIdleMonitor *dbus_monitor;
   MetaIdleMonitor *monitor;
@@ -222,6 +247,8 @@ create_monitor_skeleton (GDBusObjectManagerServer *server,
                            G_CALLBACK (handle_remove_watch), monitor, 0);
   g_signal_connect_object (skeleton, "handle-get-idletime",
                            G_CALLBACK (handle_get_idletime), monitor, 0);
+  g_signal_connect_object (skeleton, "handle-reset-idletime",
+                           G_CALLBACK (handle_reset_idletime), monitor, 0);
 
   object = g_dbus_object_skeleton_new (path);
   g_dbus_object_skeleton_add_interface (object,
diff --git a/daemons/idle-monitor/org.gnome.Mutter.IdleMonitor.xml 
b/daemons/idle-monitor/org.gnome.Mutter.IdleMonitor.xml
index 34a26dd..876253a 100644
--- a/daemons/idle-monitor/org.gnome.Mutter.IdleMonitor.xml
+++ b/daemons/idle-monitor/org.gnome.Mutter.IdleMonitor.xml
@@ -28,6 +28,8 @@
       <arg name="id" direction="in" type="u" />
     </method>
 
+    <method name="ResetIdletime" />
+
     <signal name="WatchFired">
       <arg name="id" direction="out" type="u" />
     </signal>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]