From 665081d268d8f64e66ee891f6f32ab2b084c8de7 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Sat, 24 Apr 2021 00:17:25 +0200 Subject: [PATCH] core: Add ::timeout signal to MetaStartupSequence These objects are missing explicit notifications about when they are going away by themselves, add one. Part-of: --- 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 07f1856b0..85a14e939 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); }