diff options
author | Alexandre Rostovtsev <tetromino@gentoo.org> | 2012-09-11 08:27:57 +0000 |
---|---|---|
committer | Alexandre Rostovtsev <tetromino@gentoo.org> | 2012-09-11 08:27:57 +0000 |
commit | 8e2b9aca5d1c20234888cba9781ce31893992787 (patch) | |
tree | 90b662f7fb4eceea0f86719497b51438f7e32a26 /gnome-extra/cinnamon/files | |
parent | Version bump. Removed old (diff) | |
download | gentoo-2-8e2b9aca5d1c20234888cba9781ce31893992787.tar.gz gentoo-2-8e2b9aca5d1c20234888cba9781ce31893992787.tar.bz2 gentoo-2-8e2b9aca5d1c20234888cba9781ce31893992787.zip |
Port cinnamon-settings to new timedated dbus API (bug #434494, thanks to Antoine Lemoine).
(Portage version: 2.2.0_alpha125/cvs/Linux x86_64)
Diffstat (limited to 'gnome-extra/cinnamon/files')
-rw-r--r-- | gnome-extra/cinnamon/files/cinnamon-1.4-UP1-spin-buttons.patch | 66 | ||||
-rw-r--r-- | gnome-extra/cinnamon/files/cinnamon-1.4-UP1-timedated.patch | 157 |
2 files changed, 223 insertions, 0 deletions
diff --git a/gnome-extra/cinnamon/files/cinnamon-1.4-UP1-spin-buttons.patch b/gnome-extra/cinnamon/files/cinnamon-1.4-UP1-spin-buttons.patch new file mode 100644 index 000000000000..321bfbbd9581 --- /dev/null +++ b/gnome-extra/cinnamon/files/cinnamon-1.4-UP1-spin-buttons.patch @@ -0,0 +1,66 @@ +From 2a099e8be78db1c7fd0617daf54190ba65b84619 Mon Sep 17 00:00:00 2001 +From: Clement Lefebvre <clement.lefebvre@linuxmint.com> +Date: Fri, 18 May 2012 18:33:14 +0100 +Subject: [PATCH] Fix a regression in GTK3's SpinButtons (non-editable now + means non-changeable at all now.. eventually we'll need to + port Cinnamon-settings to GTK2) + +--- + debian/changelog | 6 ++++++ + files/usr/lib/cinnamon-settings/cinnamon-settings.py | 12 ++++++------ + 2 files changed, 12 insertions(+), 6 deletions(-) + +diff --git a/debian/changelog b/debian/changelog +index 726780c..5914cd4 100644 +--- a/debian/changelog ++++ b/debian/changelog +@@ -1,3 +1,9 @@ ++cinnamon (1.4-UP1) maya; urgency=low ++ ++ * 1.4 UP1 ++ ++ -- Clement Lefebvre <root@linuxmint.com> Sun, 13 May 2012 23:43:22 +0100 ++ + cinnamon (1.4.0) lisa; urgency=low + + * New Cinnamon release +diff --git a/files/usr/lib/cinnamon-settings/cinnamon-settings.py b/files/usr/lib/cinnamon-settings/cinnamon-settings.py +index 7310ec9..fa1e212 100755 +--- a/files/usr/lib/cinnamon-settings/cinnamon-settings.py ++++ b/files/usr/lib/cinnamon-settings/cinnamon-settings.py +@@ -537,7 +537,7 @@ class GSettingsSpinButton(Gtk.HBox): + + self.content_widget.set_range(min, max) + self.content_widget.set_increments(step, page) +- self.content_widget.set_editable(False) ++ #self.content_widget.set_editable(False) + + self.settings = Gio.Settings.new(schema) + self.content_widget.set_value(self.settings.get_int(self.key)) +@@ -687,7 +687,7 @@ class GSettingsRangeSpin(Gtk.HBox): + + self.content_widget.set_range(_min, _max) + self.content_widget.set_increments(_increment, _increment) +- self.content_widget.set_editable(False) ++ #self.content_widget.set_editable(False) + self.content_widget.set_digits(1) + self.content_widget.set_value(self.settings.get_double(self.key)) + +@@ -862,10 +862,10 @@ class ChangeTimeWidget(Gtk.HBox): + self.minSpin.configure(minAdj, 0.5, 0) + self.yearSpin.configure(yearAdj, 0.5, 0) + self.daySpin.configure(dayAdj, 0.5, 0) +- self.hourSpin.set_editable(False) +- self.minSpin.set_editable(False) +- self.yearSpin.set_editable(False) +- self.daySpin.set_editable(False) ++ #self.hourSpin.set_editable(False) ++ #self.minSpin.set_editable(False) ++ #self.yearSpin.set_editable(False) ++ #self.daySpin.set_editable(False) + + self.update_time() + GObject.timeout_add(1000, self.update_time) +-- +1.7.12 + diff --git a/gnome-extra/cinnamon/files/cinnamon-1.4-UP1-timedated.patch b/gnome-extra/cinnamon/files/cinnamon-1.4-UP1-timedated.patch new file mode 100644 index 000000000000..e26080a8d0ce --- /dev/null +++ b/gnome-extra/cinnamon/files/cinnamon-1.4-UP1-timedated.patch @@ -0,0 +1,157 @@ +From 4c9d4bddcbec9cf0e4cd866f70a498f321880693 Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev <tetromino@gentoo.org> +Date: Tue, 11 Sep 2012 02:50:34 -0400 +Subject: [PATCH] Add a wrapper to switch between timedated and g-s-d's + DateTimeMechanism + +Upstream gnome-settings-daemon-3.4 and higher no longer implements +org.gnome.SettingsDaemon.DateTimeMechanism. In some distros (e.g. +Debian) this change had been reverted, and the old interface for now +remains available. Other distros agree with the upstream decision and +have switched to the new timedated interface as implemented by systemd +and openrc-settingsd. + +This patch adds a simple wrapper around the two interfaces, allowing +cinnamon-settings to support both. If the timedated interface is not +available, the traditional g-s-d DateTimeMechanism is used. + +Fixes https://github.com/linuxmint/Cinnamon/issues/515 +--- + .../usr/lib/cinnamon-settings/cinnamon-settings.py | 72 +++++++++++++++++++--- + 1 file changed, 62 insertions(+), 10 deletions(-) + +diff --git a/files/usr/lib/cinnamon-settings/cinnamon-settings.py b/files/usr/lib/cinnamon-settings/cinnamon-settings.py +index fa1e212..fbcfef2 100755 +--- a/files/usr/lib/cinnamon-settings/cinnamon-settings.py ++++ b/files/usr/lib/cinnamon-settings/cinnamon-settings.py +@@ -28,7 +28,51 @@ gettext.install("cinnamon", "/usr/share/cinnamon/locale") + menuName = _("Desktop Settings") + menuGenericName = _("Desktop Configuration Tool") + menuComment = _("Fine-tune desktop settings") +- ++ ++# wrapper for timedated or gnome-settings-daemon's DateTimeMechanism ++class DateTimeWrapper: ++ def __init__(self): ++ try: ++ proxy = dbus.SystemBus().get_object("org.freedesktop.timedate1", "/org/freedesktop/timedate1") ++ self.dbus_iface = dbus.Interface(proxy, dbus_interface="org.freedesktop.timedate1") ++ self.properties_iface = dbus.Interface(proxy, dbus_interface=dbus.PROPERTIES_IFACE) ++ self.timedated = True ++ except dbus.exceptions.DBusException: ++ proxy = dbus.SystemBus().get_object("org.gnome.SettingsDaemon.DateTimeMechanism", "/") ++ self.dbus_iface = dbus.Interface(proxy, dbus_interface="org.gnome.SettingsDaemon.DateTimeMechanism") ++ self.timedated = False ++ ++ def set_time(self, seconds_since_epoch): ++ if self.timedated: ++ # timedated expects microseconds ++ return self.dbus_iface.SetTime(seconds_since_epoch * 1000000, False, True) ++ else: ++ return self.dbus_iface.SetTime(seconds_since_epoch) ++ ++ def get_timezone(self): ++ if self.timedated: ++ return self.properties_iface.Get("org.freedesktop.timedate1", "Timezone") ++ else: ++ return self.dbus_iface.GetTimezone() ++ ++ def set_timezone(self, tz): ++ if self.timedated: ++ return self.dbus_iface.SetTimezone(tz, True) ++ else: ++ return self.dbus_iface.SetTimezone(tz) ++ ++ def get_using_ntp(self): ++ if self.timedated: ++ return self.properties_iface.Get("org.freedesktop.timedate1", "NTP") ++ else: ++ return self.dbus_iface.GetUsingNtp() ++ ++ def set_using_ntp(self, usingNtp): ++ if self.timedated: ++ return self.dbus_iface.SetNTP(usingNtp, True) ++ else: ++ return self.dbus_iface.SetUsingNtp(usingNtp) ++ + class SidePage: + def __init__(self, name, icon, content_box): + self.name = name +@@ -521,7 +565,17 @@ class DBusCheckButton(Gtk.CheckButton): + + def on_my_value_changed(self, widget): + getattr(self.dbus_iface, self.dbus_set_method)(self.get_active()) +- ++ ++class NtpCheckButton(Gtk.CheckButton): ++ def __init__(self, label): ++ super(NtpCheckButton, self).__init__(label) ++ self.date_time_wrapper = DateTimeWrapper() ++ self.set_active(self.date_time_wrapper.get_using_ntp()) ++ self.connect('toggled', self.on_my_value_changed) ++ ++ def on_my_value_changed(self, widget): ++ self.date_time_wrapper.set_using_ntp(self.get_active()) ++ + class GSettingsSpinButton(Gtk.HBox): + def __init__(self, label, schema, key, min, max, step, page, units): + self.key = key +@@ -742,8 +796,7 @@ class TimeZoneSelectorWidget(Gtk.HBox): + def __init__(self): + super(TimeZoneSelectorWidget, self).__init__() + +- proxy = dbus.SystemBus().get_object("org.gnome.SettingsDaemon.DateTimeMechanism", "/") +- self.dbus_iface = dbus.Interface(proxy, dbus_interface="org.gnome.SettingsDaemon.DateTimeMechanism") ++ self.date_time_wrapper = DateTimeWrapper() + + self.timezones = tz.load_db() + +@@ -789,7 +842,7 @@ class TimeZoneSelectorWidget(Gtk.HBox): + tree_iter = widget.get_active_iter() + if tree_iter != None: + self.selected_city = self.city_model[tree_iter][0] +- self.dbus_iface.SetTimezone(self.selected_region+"/"+self.selected_city) ++ self.date_time_wrapper.set_timezone(self.selected_region+"/"+self.selected_city) + def on_region_changed(self, widget): + tree_iter = widget.get_active_iter() + if tree_iter != None: +@@ -810,7 +863,7 @@ class TimeZoneSelectorWidget(Gtk.HBox): + if selected_city_iter is not None: + self.city_widget.set_active_iter(selected_city_iter) + def get_selected_zone(self): +- tz = self.dbus_iface.GetTimezone() ++ tz = self.date_time_wrapper.get_timezone() + if "/" in tz: + i = tz.index("/") + region = tz[:i] +@@ -822,8 +875,7 @@ class TimeZoneSelectorWidget(Gtk.HBox): + class ChangeTimeWidget(Gtk.HBox): + def __init__(self): + super(ChangeTimeWidget, self).__init__() +- proxy = dbus.SystemBus().get_object("org.gnome.SettingsDaemon.DateTimeMechanism", "/") +- self.dbus_iface = dbus.Interface(proxy, dbus_interface="org.gnome.SettingsDaemon.DateTimeMechanism") ++ self.date_time_wrapper = DateTimeWrapper() + + # Ensures we are setting the system time only when the user changes it + self.changedOnTimeout = False +@@ -949,7 +1001,7 @@ class ChangeTimeWidget(Gtk.HBox): + self._time_to_set = None + self._setting_time_lock.release() + +- self.dbus_iface.SetTime(time_to_set) ++ self.date_time_wrapper.set_time(time_to_set) + + # Check whether another request to set the time was done since this thread started + self._setting_time_lock.acquire() +@@ -1129,7 +1181,7 @@ class MainWindow: + sidePage.add_widget(Gtk.LinkButton.new_with_label("http://www.foragoodstrftime.com/", _("Generate your own date formats"))) + self.ntpCheckButton = None + try: +- self.ntpCheckButton = DBusCheckButton(_("Use network time"), "org.gnome.SettingsDaemon.DateTimeMechanism", "/", "GetUsingNtp", "SetUsingNtp") ++ self.ntpCheckButton = NtpCheckButton(_("Use network time")) + sidePage.add_widget(self.ntpCheckButton) + except: + pass +-- +1.7.12 + |