[mutter/wip/carlosg/xdg-activation: 4/5] core: Add ::timeout signal to MetaStartupSequence




commit fc79016173d855e5c4a9c1daefd78d6188efe173
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sat Apr 24 00:17:25 2021 +0200

    core: Add ::timeout signal to MetaStartupSequence
    
    These objects are missing explicit notifications about when they
    are going away by themselves, add one.

 src/core/startup-notification.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)
---
diff --git a/src/core/startup-notification.c b/src/core/startup-notification.c
index 07f1856b0a..85a14e939c 100644
--- a/src/core/startup-notification.c
+++ b/src/core/startup-notification.c
@@ -62,6 +62,7 @@ enum
 enum
 {
   SEQ_COMPLETE,
+  SEQ_TIMEOUT,
   N_SEQ_SIGNALS
 };
 
@@ -267,6 +268,12 @@ meta_startup_sequence_class_init (MetaStartupSequenceClass *klass)
                   G_STRUCT_OFFSET (MetaStartupSequenceClass, complete),
                   NULL, NULL, NULL,
                   G_TYPE_NONE, 0);
+  seq_signals[SEQ_TIMEOUT] =
+    g_signal_new ("timeout",
+                  META_TYPE_STARTUP_SEQUENCE,
+                  G_SIGNAL_RUN_LAST,
+                  0, NULL, NULL, NULL,
+                  G_TYPE_NONE, 0);
 
   seq_props[PROP_SEQ_ID] =
     g_param_spec_string ("id",
@@ -488,7 +495,12 @@ startup_sequence_timeout (void *data)
                   "Timed out sequence %s",
                   meta_startup_sequence_get_id (sequence));
 
-      meta_startup_sequence_complete (sequence);
+      if (!meta_startup_sequence_get_completed (sequence))
+        {
+          g_signal_emit (sequence, seq_signals[SEQ_TIMEOUT], 0, sequence);
+          meta_startup_sequence_complete (sequence);
+        }
+
       meta_startup_notification_remove_sequence (sn, sequence);
     }
 


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