From 994a540bfccad62aac0caa72b5706a71e2989e36 Mon Sep 17 00:00:00 2001 From: Felipe Borges Date: Fri, 15 Mar 2024 11:49:16 +0100 Subject: [PATCH] system, datetime: Don't set datetime when auto time sync is enabled The timedate1_call will fail because network time synchronization is enabled: GDBus.Error:org.freedesktop.timedate1.AutomaticTimeSyncEnabled: Automatic time synchronization is enabled Let's not set_time when NTP is not available, neither set time by accident at the widget construction stage. When widgets signals are connected in the UI file their respective callback was getting called. By moving the signal connection to callbacks to the widget's _init method we avoid the unwanted callback call. Fixes #2945 --- panels/system/datetime/cc-datetime-page.c | 11 +++++++++-- panels/system/datetime/cc-datetime-page.ui | 2 -- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/panels/system/datetime/cc-datetime-page.c b/panels/system/datetime/cc-datetime-page.c index e60e42a98..cef959164 100644 --- a/panels/system/datetime/cc-datetime-page.c +++ b/panels/system/datetime/cc-datetime-page.c @@ -304,6 +304,10 @@ queue_set_datetime (CcDateTimePage *self) { gint64 unixtime; + /* Don't set the time if we are using network time (NTP). */ + if (gtk_switch_get_active (self->network_time_switch)) + return; + /* timedated expects number of microseconds since 1 Jan 1970 UTC */ unixtime = g_date_time_to_unix (self->date); @@ -831,10 +835,8 @@ cc_date_time_page_class_init (CcDateTimePageClass *klass) gtk_widget_class_bind_template_callback (widget_class, panel_tz_selection_changed_cb); gtk_widget_class_bind_template_callback (widget_class, list_box_row_activated); - gtk_widget_class_bind_template_callback (widget_class, time_changed_cb); gtk_widget_class_bind_template_callback (widget_class, change_clock_settings); gtk_widget_class_bind_template_callback (widget_class, on_date_box_row_activated_cb); - gtk_widget_class_bind_template_callback (widget_class, on_month_selection_changed_cb); bind_textdomain_codeset (GETTEXT_PACKAGE_TIMEZONES, "UTF-8"); } @@ -955,6 +957,11 @@ cc_date_time_page_init (CcDateTimePage *self) * the model is filled up */ get_initial_timezone (self); + g_signal_connect_object (self->time_editor, "time-changed", + G_CALLBACK (time_changed_cb), self, G_CONNECT_SWAPPED); + g_signal_connect_object (self->month_model, "selection-changed", + G_CALLBACK (on_month_selection_changed_cb), self, G_CONNECT_SWAPPED); + /* Watch changes of timedated remote service properties */ g_signal_connect_object (self->dtm, "g-properties-changed", G_CALLBACK (on_timedated_properties_changed), self, G_CONNECT_SWAPPED); diff --git a/panels/system/datetime/cc-datetime-page.ui b/panels/system/datetime/cc-datetime-page.ui index 96d0bd75b..82226a57f 100644 --- a/panels/system/datetime/cc-datetime-page.ui +++ b/panels/system/datetime/cc-datetime-page.ui @@ -37,7 +37,6 @@ center - @@ -264,7 +263,6 @@ False -