mate-control-center: add custom patch to allow edit clock w/o ntp provider.
This commit is contained in:
parent
52c20bbb8b
commit
d489ed9527
2 changed files with 129 additions and 0 deletions
|
|
@ -0,0 +1,103 @@
|
||||||
|
diff --git a/capplets/time-admin/src/main.c b/capplets/time-admin/src/main.c
|
||||||
|
index a15254e6..ac9adb43 100644
|
||||||
|
--- a/capplets/time-admin/src/main.c
|
||||||
|
+++ b/capplets/time-admin/src/main.c
|
||||||
|
@@ -156,8 +156,14 @@ static void InitMainWindow(TimeAdmin *ta)
|
||||||
|
|
||||||
|
/* NTP sync switch */
|
||||||
|
ta->NtpState = GetNtpState(ta);
|
||||||
|
+ /* If there is no NTP provider, then disable ntp switch and manually set NtpState = FALSE */
|
||||||
|
+ if (!GetCanNtp(ta)) {
|
||||||
|
+ gtk_widget_set_sensitive (ta->NtpSyncSwitch, FALSE);
|
||||||
|
+ ta->NtpState = FALSE;
|
||||||
|
+ }
|
||||||
|
gtk_switch_set_state (GTK_SWITCH(ta->NtpSyncSwitch), ta->NtpState);
|
||||||
|
-
|
||||||
|
+ /* Refresh the tooltip state consistently */
|
||||||
|
+ ChangeSpinBttonState (ta);
|
||||||
|
/* Time zone */
|
||||||
|
SetupTimezoneDialog(ta);
|
||||||
|
const char *TimeZone = GetTimeZone(ta);
|
||||||
|
diff --git a/capplets/time-admin/src/time-tool.c b/capplets/time-admin/src/time-tool.c
|
||||||
|
index 664f6284..ac41545a 100644
|
||||||
|
--- a/capplets/time-admin/src/time-tool.c
|
||||||
|
+++ b/capplets/time-admin/src/time-tool.c
|
||||||
|
@@ -138,6 +138,45 @@ EXIT:
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
+/* Returns TRUE if timedated reports a network time provider (CanNTP == TRUE). */
|
||||||
|
+gboolean GetCanNtp(TimeAdmin *ta)
|
||||||
|
+{
|
||||||
|
+ GDBusProxy *proxy = NULL;
|
||||||
|
+ GError *error = NULL;
|
||||||
|
+ GVariant *ret;
|
||||||
|
+ GVariant *canntp;
|
||||||
|
+
|
||||||
|
+ proxy = g_dbus_proxy_new_sync (ta->Connection,
|
||||||
|
+ G_DBUS_PROXY_FLAGS_NONE,
|
||||||
|
+ NULL,
|
||||||
|
+ "org.freedesktop.timedate1",
|
||||||
|
+ "/org/freedesktop/timedate1",
|
||||||
|
+ "org.freedesktop.DBus.Properties",
|
||||||
|
+ NULL,
|
||||||
|
+ &error);
|
||||||
|
+ if (proxy == NULL)
|
||||||
|
+ goto EXIT;
|
||||||
|
+
|
||||||
|
+ ret = g_dbus_proxy_call_sync (proxy,
|
||||||
|
+ "Get",
|
||||||
|
+ g_variant_new ("(ss)",
|
||||||
|
+ "org.freedesktop.timedate1",
|
||||||
|
+ "CanNTP"),
|
||||||
|
+ G_DBUS_CALL_FLAGS_NONE,
|
||||||
|
+ -1,
|
||||||
|
+ NULL,
|
||||||
|
+ &error);
|
||||||
|
+ if (ret == NULL)
|
||||||
|
+ goto EXIT;
|
||||||
|
+
|
||||||
|
+ g_variant_get (ret, "(v)", &canntp);
|
||||||
|
+ return g_variant_get_boolean (canntp);
|
||||||
|
+
|
||||||
|
+EXIT:
|
||||||
|
+ ErrorMessage (_("GetNtpState"), error ? error->message : _("Unknown error"));
|
||||||
|
+ if (error) g_error_free (error);
|
||||||
|
+ return FALSE;
|
||||||
|
+}
|
||||||
|
const gchar *GetTimeZone(TimeAdmin *ta)
|
||||||
|
{
|
||||||
|
GDBusProxy *proxy = NULL;
|
||||||
|
@@ -200,10 +238,16 @@ void SetTimeZone(GDBusProxy *proxy,const char *zone)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-static void
|
||||||
|
+void
|
||||||
|
ChangeSpinBttonState (TimeAdmin *ta)
|
||||||
|
{
|
||||||
|
+ /* Enable/disable manual edit widgets based on NTP state */
|
||||||
|
gtk_widget_set_sensitive (ta->SaveButton, !ta->NtpState);
|
||||||
|
+ gtk_widget_set_sensitive (ta->HourSpin, !ta->NtpState);
|
||||||
|
+ gtk_widget_set_sensitive (ta->MinuteSpin, !ta->NtpState);
|
||||||
|
+ gtk_widget_set_sensitive (ta->SecondSpin, !ta->NtpState);
|
||||||
|
+ gtk_widget_set_sensitive (ta->Calendar, !ta->NtpState);
|
||||||
|
+
|
||||||
|
SetTooltip (ta->SaveButton, !ta->NtpState);
|
||||||
|
SetTooltip (ta->HourSpin, !ta->NtpState);
|
||||||
|
SetTooltip (ta->MinuteSpin, !ta->NtpState);
|
||||||
|
diff --git a/capplets/time-admin/src/time-tool.h b/capplets/time-admin/src/time-tool.h
|
||||||
|
index 9c17703e..dfb0e601 100644
|
||||||
|
--- a/capplets/time-admin/src/time-tool.h
|
||||||
|
+++ b/capplets/time-admin/src/time-tool.h
|
||||||
|
@@ -42,6 +42,10 @@ void SaveModifyTime (GtkButton *button,
|
||||||
|
|
||||||
|
gboolean GetNtpState (TimeAdmin *ta);
|
||||||
|
|
||||||
|
+gboolean GetCanNtp (TimeAdmin *ta);
|
||||||
|
+
|
||||||
|
+void ChangeSpinBttonState (TimeAdmin *ta);
|
||||||
|
+
|
||||||
|
const gchar *GetTimeZone (TimeAdmin *ta);
|
||||||
|
|
||||||
|
void SetTimeZone (GDBusProxy *proxy,
|
||||||
26
helpers/make-mate-control-center
Normal file
26
helpers/make-mate-control-center
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (C) 2025 Luis Guzmán <ark@switnet.org>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
#
|
||||||
|
|
||||||
|
VERSION=1
|
||||||
|
. ./config
|
||||||
|
|
||||||
|
apply_patch_changes
|
||||||
|
|
||||||
|
changelog "Add custom patch to fix TPH#162, non-editable mate clock w/o ntp server."
|
||||||
|
package
|
||||||
Loading…
Add table
Add a link
Reference in a new issue