Hello community, here is the log from the commit of package cinnamon-desktop for openSUSE:Factory checked in at 2017-11-14 12:56:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cinnamon-desktop (Old) and /work/SRC/openSUSE:Factory/.cinnamon-desktop.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cinnamon-desktop" Tue Nov 14 12:56:54 2017 rev:11 rq:541121 version:3.6.2 Changes: -------- --- /work/SRC/openSUSE:Factory/cinnamon-desktop/cinnamon-desktop.changes 2017-06-23 09:18:41.943601324 +0200 +++ /work/SRC/openSUSE:Factory/.cinnamon-desktop.new/cinnamon-desktop.changes 2017-11-14 12:57:00.811406212 +0100 @@ -1,0 +2,23 @@ +Sun Nov 12 21:00:18 UTC 2017 - [email protected] + +- Update to version 3.6.2: + * Set org.cinnamon.desktop.screensaver ask-for-away-message to + False. + +------------------------------------------------------------------- +Thu Nov 9 18:24:42 UTC 2017 - [email protected] + +- Update to version 3.6.1: + * Default: Change idle-delay default to 15 min. + * Remove obsolete gsettings key. + +------------------------------------------------------------------- +Sat Oct 28 19:57:36 UTC 2017 - [email protected] + +- Update to version 3.6.0: + * gnome-wall-clock: Improve API, handle seconds timing based on + format string. + * Use logind by default. + * Use Python3 instead of Python2. + +------------------------------------------------------------------- Old: ---- cinnamon-desktop-3.4.2.tar.gz New: ---- cinnamon-desktop-3.6.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cinnamon-desktop.spec ++++++ --- /var/tmp/diff_new_pack.dPkqiB/_old 2017-11-14 12:57:02.495344641 +0100 +++ /var/tmp/diff_new_pack.dPkqiB/_new 2017-11-14 12:57:02.499344494 +0100 @@ -23,10 +23,10 @@ %define typelib typelib-1_0-CinnamonDesktop-3_0 %define typelib_cvc typelib-1_0-Cvc-1_0 Name: cinnamon-desktop -Version: 3.4.2 +Version: 3.6.2 Release: 0 Summary: Libcinnamon-desktop API -License: GPL-2.0+ and MIT +License: GPL-2.0+ AND MIT Group: System/GUI/Other Url: https://github.com/linuxmint/cinnamon-desktop Source: https://github.com/linuxmint/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz @@ -42,7 +42,7 @@ BuildRequires: libtool BuildRequires: pam-devel BuildRequires: pkgconfig -BuildRequires: python-devel +BuildRequires: python3-devel BuildRequires: yelp-tools BuildRequires: pkgconfig(accountsservice) BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= 2.22.0 @@ -92,7 +92,7 @@ Group: System/GUI/Other Requires: %{soname}-data-branding = %{version} Requires: pam -Requires: python-gobject +Requires: python3-gobject Recommends: %{soname}-lang # cinnamon-desktop-lang was last used in openSUSE 13.2. Provides: %{name}-lang = %{version} @@ -203,11 +203,13 @@ find %{buildroot} -type f -name "*.la" -delete -print %find_lang %{name} %{?no_lang_C} +%if 0%{?suse_version} <= 1320 %post -n %{soname}-data %glib2_gsettings_schema_post %postun -n %{soname}-data %glib2_gsettings_schema_postun +%endif %post -n %{soname}%{sover} -p /sbin/ldconfig @@ -218,31 +220,25 @@ %postun -n %{soname_cvc}%{sover_cvc} -p /sbin/ldconfig %files -n %{soname}%{sover} -%defattr(-,root,root) %doc AUTHORS COPYING* README debian/changelog %{_libdir}/%{soname}.so.%{sover}* %files -n %{soname}-lang -f %{name}.lang -%defattr(-,root,root) %files -n %{soname}-data -%defattr(-,root,root) %doc AUTHORS COPYING* README debian/changelog %{_bindir}/cinnamon-desktop-migrate-mediakeys %{_datadir}/glib-2.0/schemas/*.xml %{_datadir}/%{soname}/ %files -n %{soname}-data-branding-upstream -%defattr(-,root,root) %doc README.Gsettings-overrides %files -n %{typelib} -%defattr(-,root,root) %{_libdir}/girepository-1.0/CinnamonDesktop-3.0.typelib %{_libdir}/girepository-1.0/CDesktopEnums-3.0.typelib %files -n %{soname}-devel -%defattr(-,root,root) %{_includedir}/%{name}/ %{_libdir}/pkgconfig/%{name}.pc %{_libdir}/%{soname}.so @@ -250,16 +246,13 @@ %{_datadir}/gir-1.0/CDesktopEnums-3.0.gir %files -n %{soname_cvc}%{sover_cvc} -%defattr(-,root,root) %doc AUTHORS COPYING* README debian/changelog %{_libdir}/%{soname_cvc}.so.%{sover_cvc}* %files -n %{typelib_cvc} -%defattr(-,root,root) %{_libdir}/girepository-1.0/Cvc-1.0.typelib %files -n %{soname_cvc}-devel -%defattr(-,root,root) %{_libdir}/pkgconfig/cvc.pc %{_libdir}/%{soname_cvc}.so %{_datadir}/gir-1.0/Cvc-1.0.gir ++++++ cinnamon-desktop-3.4.2.tar.gz -> cinnamon-desktop-3.6.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.2/configure.ac new/cinnamon-desktop-3.6.2/configure.ac --- old/cinnamon-desktop-3.4.2/configure.ac 2017-06-20 15:25:28.000000000 +0200 +++ new/cinnamon-desktop-3.6.2/configure.ac 2017-11-11 18:16:50.000000000 +0100 @@ -1,5 +1,5 @@ -AC_INIT(cinnamon-desktop, 3.4.2) +AC_INIT(cinnamon-desktop, 3.6.2) m4_ifdef([AX_IS_RELEASE], [AX_IS_RELEASE([always])]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.2/debian/changelog new/cinnamon-desktop-3.6.2/debian/changelog --- old/cinnamon-desktop-3.4.2/debian/changelog 2017-06-20 15:25:28.000000000 +0200 +++ new/cinnamon-desktop-3.6.2/debian/changelog 2017-11-11 18:16:50.000000000 +0100 @@ -1,3 +1,29 @@ +cinnamon-desktop (3.6.2) sylvia; urgency=medium + + * Set org.cinnamon.desktop.screensaver ask-for-away-message to False + + -- Clement Lefebvre <[email protected]> Sat, 11 Nov 2017 17:16:29 +0000 + +cinnamon-desktop (3.6.1) sylvia; urgency=medium + + * Default: Change idle-delay default to 15 min. + * Remove obsolete gsettings key + + -- Clement Lefebvre <[email protected]> Thu, 09 Nov 2017 12:38:36 +0000 + +cinnamon-desktop (3.6.0) sylvia; urgency=medium + + [ Michael Webster ] + * gnome-wall-clock: Improve api, handle seconds timing based on format string + + [ leigh123linux ] + * Use logind for default + + [ Troy Curtis ] + * Trivial syntax fixes to support python3. (#97) + + -- Clement Lefebvre <[email protected]> Sun, 13 Aug 2017 15:02:01 -0400 + cinnamon-desktop (3.4.2) sonya; urgency=medium [ Michael Webster ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.2/files/usr/bin/cinnamon-desktop-migrate-mediakeys new/cinnamon-desktop-3.6.2/files/usr/bin/cinnamon-desktop-migrate-mediakeys --- old/cinnamon-desktop-3.4.2/files/usr/bin/cinnamon-desktop-migrate-mediakeys 2017-06-20 15:25:28.000000000 +0200 +++ new/cinnamon-desktop-3.6.2/files/usr/bin/cinnamon-desktop-migrate-mediakeys 2017-11-11 18:16:50.000000000 +0100 @@ -1,4 +1,4 @@ -#!/usr/bin/python2 +#!/usr/bin/python3 from gi.repository import Gio import os @@ -45,7 +45,7 @@ if ov != "": new_settings.set_strv(k, (ov,)) except: - print "Problem migrating key %s from %s to %s, skipping it" % (k, old, new) + print("Problem migrating key %s from %s to %s, skipping it" % (k, old, new)) Gio.Settings.sync() def migrate_custom_keys(): @@ -75,33 +75,33 @@ Gio.Settings.sync() if os.path.exists(os.path.expanduser("~/.cinnamon/.keybindings-migration-2.4-complete-do-not-erase")): - print "Migration has been performed already for this user." + print("Migration has been performed already for this user.") exit(0) -print "Migrating keybindings from previous release..." +print("Migrating keybindings from previous release...") try: source = Gio.SettingsSchemaSource.get_default() if source.lookup(OLD_MEDIA_KEYS_SCHEMA, True) != None: migrate(OLD_MEDIA_KEYS_SCHEMA, NEW_MEDIA_KEYS_SCHEMA, False) - print " ... media keybindings: done." + print(" ... media keybindings: done.") if source.lookup(OLD_WM_KEYBINDINGS_SCHEMA, True) != None: migrate(OLD_WM_KEYBINDINGS_SCHEMA, NEW_WM_KEYBINDINGS_SCHEMA, True) - print " ... wm keybindings: done." + print(" ... wm keybindings: done.") if source.lookup(OLD_CUSTOM_KEYS_PARENT_SCHEMA, True) != None: migrate_custom_keys() - print " ... custom keybindings: done." + print(" ... custom keybindings: done.") Gio.Settings.sync() open(os.path.expanduser("~/.cinnamon/.keybindings-migration-2.4-complete-do-not-erase"), "w").close() -except Exception, detail: - print " !! %s" % detail +except Exception as detail: + print(" !! %s" % detail) -print " Done." +print(" Done.") exit(0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.2/installer-test new/cinnamon-desktop-3.6.2/installer-test --- old/cinnamon-desktop-3.4.2/installer-test 2017-06-20 15:25:28.000000000 +0200 +++ new/cinnamon-desktop-3.6.2/installer-test 2017-11-11 18:16:50.000000000 +0100 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 import gi gi.require_version('CinnamonDesktop', '3.0') @@ -25,12 +25,12 @@ return True if (len(sys.argv) < 3 or sys.argv[1] not in ("install", "check")): - print """ + print (""" Usage: installer-test install|check package_1 [package_2 ...] -""" +""") quit() i = 2 @@ -39,7 +39,7 @@ while i < len(sys.argv): pkgs.append(sys.argv[i]) i+=1 -print "Working with packages: %s" % pkgs +print( "Working with packages: %s" % pkgs ) # Testing non-blocking-ness of the installer GObject.timeout_add(250, working_cb) @@ -52,4 +52,4 @@ ml = GLib.MainLoop.new(None, True) -ml.run() \ No newline at end of file +ml.run() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.2/libcinnamon-desktop/cdesktop-enums.h new/cinnamon-desktop-3.6.2/libcinnamon-desktop/cdesktop-enums.h --- old/cinnamon-desktop-3.4.2/libcinnamon-desktop/cdesktop-enums.h 2017-06-20 15:25:28.000000000 +0200 +++ new/cinnamon-desktop-3.6.2/libcinnamon-desktop/cdesktop-enums.h 2017-11-11 18:16:50.000000000 +0100 @@ -64,13 +64,6 @@ typedef enum { - C_DESKTOP_CLOCK_INTERVAL_SECOND, - C_DESKTOP_CLOCK_INTERVAL_MINUTE, - C_DESKTOP_CLOCK_INTERVAL_SETTING -} CDesktopClockInterval; - -typedef enum -{ C_DESKTOP_MOUSE_DWELL_MODE_WINDOW, C_DESKTOP_MOUSE_DWELL_MODE_GESTURE } CDesktopMouseDwellMode; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.2/libcinnamon-desktop/gnome-wall-clock.c new/cinnamon-desktop-3.6.2/libcinnamon-desktop/gnome-wall-clock.c --- old/cinnamon-desktop-3.4.2/libcinnamon-desktop/gnome-wall-clock.c 2017-06-20 15:25:28.000000000 +0200 +++ new/cinnamon-desktop-3.6.2/libcinnamon-desktop/gnome-wall-clock.c 2017-11-11 18:16:50.000000000 +0100 @@ -30,27 +30,50 @@ #include "gnome-wall-clock.h" #include "gnome-datetime-source.h" +typedef enum +{ + INTERVAL_SECOND, + INTERVAL_MINUTE, +} ClockInterval; + struct _GnomeWallClockPrivate { guint clock_update_id; - - char *clock_string; - + + char *clock_string; + + const char *default_time_format; + const char *default_date_format; + char *format_string; + gboolean custom_format; + GFileMonitor *tz_monitor; GSettings *desktop_settings; - gboolean time_only; - - CDesktopClockInterval update_interval; + ClockInterval update_interval; }; enum { PROP_0, PROP_CLOCK, - PROP_TIME_ONLY, + PROP_FORMAT_STRING, }; G_DEFINE_TYPE (GnomeWallClock, gnome_wall_clock, G_TYPE_OBJECT); +/* Defaults */ +#define DATE_ONLY (_("%A %B %e")) +#define NO_DATE ("") +#define WITH_DATE_24H_SECONDS (_("%A %B %e, %R:%S")) +#define WITH_DATE_12H_SECONDS (_("%A %B %e, %l:%M:%S %p")) +#define WITH_DATE_24H (_("%A %B %e, %R")) +#define WITH_DATE_12H (_("%A %B %e, %l:%M %p")) +#define NO_DATE_24H_SECONDS (_("%R:%S")) +#define NO_DATE_12H_SECONDS (_("%l:%M:%S %p")) +#define NO_DATE_24H (_("%R")) +#define NO_DATE_12H (_("%l:%M %p")) +/************/ + +static void update_format_string (GnomeWallClock *self, const gchar *format_string); static gboolean update_clock (gpointer data); static void on_schema_change (GSettings *schema, const char *key, @@ -61,7 +84,6 @@ GFileMonitorEvent *event, gpointer user_data); - static void gnome_wall_clock_init (GnomeWallClock *self) { @@ -80,9 +102,10 @@ self->priv->desktop_settings = g_settings_new ("org.cinnamon.desktop.interface"); g_signal_connect (self->priv->desktop_settings, "changed", G_CALLBACK (on_schema_change), self); - gnome_wall_clock_set_update_interval (self, C_DESKTOP_CLOCK_INTERVAL_SETTING); - - update_clock (self); + /* A format string provided for construction will be set after gnome_wall_clock_init() + * finishes. If not provided, our internal format and interval will still be set to + * some default by this. */ + gnome_wall_clock_set_format_string (self, NULL); } static void @@ -113,7 +136,8 @@ { GnomeWallClock *self = GNOME_WALL_CLOCK (object); - g_free (self->priv->clock_string); + g_clear_pointer (&self->priv->clock_string, g_free); + g_clear_pointer (&self->priv->format_string, g_free); G_OBJECT_CLASS (gnome_wall_clock_parent_class)->finalize (object); } @@ -128,12 +152,12 @@ switch (prop_id) { - case PROP_TIME_ONLY: - g_value_set_boolean (value, self->priv->time_only); - break; case PROP_CLOCK: g_value_set_string (value, self->priv->clock_string); break; + case PROP_FORMAT_STRING: + g_value_set_string (value, self->priv->format_string); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); break; @@ -150,9 +174,8 @@ switch (prop_id) { - case PROP_TIME_ONLY: - self->priv->time_only = g_value_get_boolean (value); - update_clock (self); + case PROP_FORMAT_STRING: + gnome_wall_clock_set_format_string (self, g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); @@ -185,41 +208,160 @@ G_PARAM_READABLE)); /** - * GnomeWallClock:time-only: + * GnomeWallClock:format-string: * - * If %TRUE, the formatted clock will never include a date or the - * day of the week, irrespective of configuration. + * If not NULL, the wall clock will format the time/date according to + * this format string. If the format string is invalid, the default string + * will be used instead. */ - g_object_class_install_property (gobject_class, - PROP_TIME_ONLY, - g_param_spec_boolean ("time-only", - "", - "", - FALSE, - G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property (gobject_class, + PROP_FORMAT_STRING, + g_param_spec_string ("format-string", + "The string to format the clock to", + "The string to format the clock to", + NULL, + G_PARAM_READABLE | G_PARAM_WRITABLE)); g_type_class_add_private (gobject_class, sizeof (GnomeWallClockPrivate)); } +static void +update_format_string (GnomeWallClock *self, const gchar *format_string) +{ + guint i; + gchar *old_format; + gboolean use_24h, show_date, show_seconds; + const gchar *default_format; + + static const gchar* seconds_tokens[] = { + "\%s", + "\%S", + "\%T", + "\%X", + "\%c" + }; + + ClockInterval new_interval = INTERVAL_MINUTE; + gchar *new_format = NULL; + + /* First parse the settings and fill out our default format strings - + * Date-only, Time-only, and combined. + */ + + use_24h = g_settings_get_boolean (self->priv->desktop_settings, "clock-use-24h"); + show_date = g_settings_get_boolean (self->priv->desktop_settings, "clock-show-date"); + show_seconds = g_settings_get_boolean (self->priv->desktop_settings, "clock-show-seconds"); + + if (use_24h) { + if (show_date) { + /* Translators: This is the time format with full date used + in 24-hour mode. */ + if (show_seconds) { + default_format = WITH_DATE_24H_SECONDS; + self->priv->default_time_format = NO_DATE_24H_SECONDS; + } else { + default_format = WITH_DATE_24H; + self->priv->default_time_format = NO_DATE_24H; + } + + self->priv->default_date_format = DATE_ONLY; + } else { + /* Translators: This is the time format without date used + in 24-hour mode. */ + if (show_seconds) { + default_format = NO_DATE_24H_SECONDS; + self->priv->default_time_format = NO_DATE_24H_SECONDS; + } else { + default_format = NO_DATE_24H; + self->priv->default_time_format = NO_DATE_24H; + } + + self->priv->default_date_format = NO_DATE; + } + } else { + if (show_date) { + /* Translators: This is a time format with full date used + for AM/PM. */ + if (show_seconds) { + default_format = WITH_DATE_12H_SECONDS; + self->priv->default_time_format = NO_DATE_12H_SECONDS; + } else { + default_format = WITH_DATE_12H; + self->priv->default_time_format = NO_DATE_12H; + } + + self->priv->default_date_format = DATE_ONLY; + } else { + /* Translators: This is a time format without date used + for AM/PM. */ + if (show_seconds) { + default_format = NO_DATE_12H_SECONDS; + self->priv->default_time_format = NO_DATE_12H_SECONDS; + } else { + default_format = NO_DATE_12H; + self->priv->default_time_format = NO_DATE_12H; + } + + self->priv->default_date_format = NO_DATE; + } + } + + /* Then look at our custom format if we received one, and test it out. + * If it's ok, it's used, otherwise we use the default format */ + + if (format_string != NULL) { + GDateTime *test_now; + gchar *str; + + test_now = g_date_time_new_now_local (); + str = g_date_time_format (test_now, format_string); + + if (str != NULL) { + new_format = g_strdup (format_string); + } + + g_clear_pointer (&str, g_free); + } + + if (new_format == NULL) { + new_format = g_strdup (default_format); + } + + /* Now determine whether we need seconds ticking or not */ + + for (i = 0; i < G_N_ELEMENTS (seconds_tokens); i++) { + if (g_strstr_len (new_format, -1, seconds_tokens[i])) { + new_interval = INTERVAL_SECOND; + break; + } + } + + old_format = self->priv->format_string; + + self->priv->format_string = new_format; + self->priv->update_interval = new_interval; + + g_free (old_format); + + g_debug ("Updated format string and interval. '%s', update every %s.", + new_format, + new_interval == 1 ? "minute" : "second"); +} + static gboolean update_clock (gpointer data) { GnomeWallClock *self = data; - const char *format_string; - gboolean use_24h; - gboolean show_full_date; - gboolean show_seconds; + GSource *source; GDateTime *now; GDateTime *expiry; - use_24h = g_settings_get_boolean (self->priv->desktop_settings, "clock-use-24h"); - show_full_date = g_settings_get_boolean (self->priv->desktop_settings, "clock-show-date"); - show_seconds = g_settings_get_boolean (self->priv->desktop_settings, "clock-show-seconds"); - now = g_date_time_new_now_local (); - if (self->priv->update_interval == C_DESKTOP_CLOCK_INTERVAL_SECOND) { + /* Setup the next update */ + + if (self->priv->update_interval == INTERVAL_SECOND) { expiry = g_date_time_add_seconds (now, 1); } else { expiry = g_date_time_add_seconds (now, 60 - g_date_time_get_second (now)); @@ -236,40 +378,20 @@ self->priv->clock_update_id = g_source_attach (source, NULL); g_source_unref (source); - if (use_24h) { - if (show_full_date) { - /* Translators: This is the time format with full date used - in 24-hour mode. */ - format_string = show_seconds ? _("%A %B %e, %R:%S") - : _("%A %B %e, %R"); - } else { - /* Translators: This is the time format without date used - in 24-hour mode. */ - format_string = show_seconds ? _("%R:%S") : _("%R"); - } - } else { - if (show_full_date) { - /* Translators: This is a time format with full date used - for AM/PM. */ - format_string = show_seconds ? _("%A %B %e, %l:%M:%S %p") - : _("%A %B %e, %l:%M %p"); - } else { - /* Translators: This is a time format without date used - for AM/PM. */ - format_string = show_seconds ? _("%l:%M:%S %p") - : _("%l:%M %p"); - } - } + /* Update the clock and notify */ + + g_free (self->priv->clock_string); + + self->priv->clock_string = g_date_time_format (now, self->priv->format_string); - g_free (self->priv->clock_string); - self->priv->clock_string = g_date_time_format (now, format_string); + g_date_time_unref (now); + g_date_time_unref (expiry); - g_date_time_unref (now); - g_date_time_unref (expiry); - - g_object_notify ((GObject*)self, "clock"); + g_debug ("Sending clock notify: '%s'", self->priv->clock_string); - return FALSE; + g_object_notify ((GObject *) self, "clock"); + + return FALSE; } static void @@ -277,8 +399,12 @@ const char *key, gpointer user_data) { - g_debug ("Updating clock because schema changed"); - update_clock (user_data); + GnomeWallClock *self = GNOME_WALL_CLOCK (user_data); + + g_debug ("Updating clock because schema changed"); + + update_format_string (self, self->priv->custom_format ? self->priv->format_string : NULL); + update_clock (self); } static void @@ -288,48 +414,135 @@ GFileMonitorEvent *event, gpointer user_data) { - g_debug ("Updating clock because timezone changed"); - update_clock (user_data); + GnomeWallClock *self = GNOME_WALL_CLOCK (user_data); + + g_debug ("Updating clock because timezone changed"); + + update_format_string (self, self->priv->custom_format ? self->priv->format_string : NULL); + update_clock (self); } +/** + * gnome_wall_clock_get_clock: + * @clock: The GnomeWallClock + * + * Description: Returns a formatted date and time based on either + * default format settings, or via a custom-set format string. + * + * The returned string should be ready to be set on a label. + * + * Returns: (transfer none): The formatted date/time string. + **/ + const char * gnome_wall_clock_get_clock (GnomeWallClock *clock) { return clock->priv->clock_string; } -GnomeWallClock * -gnome_wall_clock_new (void) +/** + * gnome_wall_clock_get_default_time_format: + * @clock: The GnomeWallClock + * + * Description: Returns the current time-only format + * based on current locale defaults and clock settings. + * + * Returns: (transfer none): The default time format string. + **/ +const gchar * +gnome_wall_clock_get_default_time_format (GnomeWallClock *clock) { - return g_object_new (GNOME_TYPE_WALL_CLOCK, NULL); + return clock->priv->default_time_format; } /** - * gnome_wall_clock_set_update_interval: - * @clock: a #GnomeWallClock - * @interval: the #CDesktopClockInterval + * gnome_wall_clock_get_default_date_format: + * @clock: The GnomeWallClock * - * Sets the wallclock timer to either seconds, minutes, or by the 'use-seconds' setting + * Description: Returns the current date-only format + * based on current locale defaults and clock settings. * - */ + * Returns: (transfer none): The default date format string. + **/ +const gchar * +gnome_wall_clock_get_default_date_format (GnomeWallClock *clock) +{ + return clock->priv->default_date_format; +} -void -gnome_wall_clock_set_update_interval(GnomeWallClock *clock, - CDesktopClockInterval interval) +/** + * gnome_wall_clock_get_clock_for_format: + * @clock: The GnomeWallClock + * @format_string: (not nullable) + * + * Description: Returns a formatted date and time based on the + * provided format string. + * + * The returned string should be ready to be set on a label. + * + * Returns: (transfer full): The formatted date/time string, or NULL + * if there was a problem with the format string. + **/ +gchar * +gnome_wall_clock_get_clock_for_format (GnomeWallClock *clock, + const gchar *format_string) { - CDesktopClockInterval new_interval; + gchar *ret; + GDateTime *now; + + g_return_val_if_fail (format_string != NULL, NULL); + + now = g_date_time_new_now_local (); + ret = g_date_time_format (now, format_string); + + g_date_time_unref (now); + + return ret; +} - if (interval == C_DESKTOP_CLOCK_INTERVAL_SETTING) { - gboolean seconds; +/** + * gnome_wall_clock_new: + * + * Description: Returns a new GnomeWallClock instance + * + * Returns: A pointer to a new GnomeWallClock instance. + **/ +GnomeWallClock * +gnome_wall_clock_new (void) +{ + return g_object_new (GNOME_TYPE_WALL_CLOCK, NULL); +} - seconds = g_settings_get_boolean (clock->priv->desktop_settings, "clock-show-seconds"); - new_interval = seconds ? C_DESKTOP_CLOCK_INTERVAL_SECOND : - C_DESKTOP_CLOCK_INTERVAL_MINUTE; +/** + * gnome_wall_clock_set_format_string: + * @clock: The GnomeWallClock + * @format_string: (nullable) + * + * Description: Sets the wall clock to use the provided + * format string for any subsequent updates. Passing NULL will + * un-set any custom format, and rely on a default locale format. + * + * Any invalid format string passed will cause it to be ignored, + * and the default locale format used instead. + * + * Returns: Whether or not the format string was valid and accepted. + **/ +gboolean +gnome_wall_clock_set_format_string (GnomeWallClock *clock, + const gchar *format_string) +{ + gboolean ret = FALSE; + update_format_string (clock, format_string); + + if (format_string != NULL) { + clock->priv->custom_format = g_strcmp0 (format_string, clock->priv->format_string) == 0; + ret = clock->priv->custom_format; } else { - new_interval = interval; + clock->priv->custom_format = FALSE; + ret = TRUE; } - clock->priv->update_interval = new_interval; - update_clock (clock); + + return ret; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.2/libcinnamon-desktop/gnome-wall-clock.h new/cinnamon-desktop-3.6.2/libcinnamon-desktop/gnome-wall-clock.h --- old/cinnamon-desktop-3.4.2/libcinnamon-desktop/gnome-wall-clock.h 2017-06-20 15:25:28.000000000 +0200 +++ new/cinnamon-desktop-3.6.2/libcinnamon-desktop/gnome-wall-clock.h 2017-11-11 18:16:50.000000000 +0100 @@ -61,9 +61,13 @@ GType gnome_wall_clock_get_type (void); const char * gnome_wall_clock_get_clock (GnomeWallClock *clock); +const gchar * gnome_wall_clock_get_default_time_format (GnomeWallClock *clock); +const gchar * gnome_wall_clock_get_default_date_format (GnomeWallClock *clock); +gchar * gnome_wall_clock_get_clock_for_format (GnomeWallClock *clock, + const gchar *format_string); GnomeWallClock * gnome_wall_clock_new (void); -void gnome_wall_clock_set_update_interval (GnomeWallClock *clock, - CDesktopClockInterval interval); +gboolean gnome_wall_clock_set_format_string (GnomeWallClock *clock, + const gchar *format_string); G_END_DECLS #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.2/schemas/org.cinnamon.desktop.screensaver.gschema.xml.in.in new/cinnamon-desktop-3.6.2/schemas/org.cinnamon.desktop.screensaver.gschema.xml.in.in --- old/cinnamon-desktop-3.4.2/schemas/org.cinnamon.desktop.screensaver.gschema.xml.in.in 2017-06-20 15:25:28.000000000 +0200 +++ new/cinnamon-desktop-3.6.2/schemas/org.cinnamon.desktop.screensaver.gschema.xml.in.in 2017-11-11 18:16:50.000000000 +0100 @@ -48,7 +48,7 @@ </description> </key> <key name="ask-for-away-message" type="b"> - <default>true</default> + <default>false</default> <summary>Whether to ask for an away message when locking the screen</summary> <description> Whether to ask for an away message when locking the screen. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.2/schemas/org.cinnamon.desktop.session.gschema.xml.in.in new/cinnamon-desktop-3.6.2/schemas/org.cinnamon.desktop.session.gschema.xml.in.in --- old/cinnamon-desktop-3.4.2/schemas/org.cinnamon.desktop.session.gschema.xml.in.in 2017-06-20 15:25:28.000000000 +0200 +++ new/cinnamon-desktop-3.6.2/schemas/org.cinnamon.desktop.session.gschema.xml.in.in 2017-11-11 18:16:50.000000000 +0100 @@ -1,7 +1,7 @@ <schemalist> <schema id="org.cinnamon.desktop.session" path="/org/cinnamon/desktop/session/"> <key name="idle-delay" type="u"> - <default>600</default> + <default>900</default> <_summary>Time before session is considered idle</_summary> <_description>The number of seconds of inactivity before the session is considered idle.</_description> </key> @@ -11,18 +11,13 @@ <description>The name of the session to use. Known values are "gnome" and "gnome-fallback".</description> </key> - <key name="screensaver-uses-logind" type="b"> - <default>false</default> - <_summary>Whether or not cinnamon-screensaver listens to logind to lock/unlock itself</_summary> - <_description>If true, it listens to logind. Otherwise it listens to consolekit.</_description> - </key> <key name="session-manager-uses-logind" type="b"> - <default>false</default> + <default>true</default> <_summary>Whether or not cinnamon-session uses logind to suspend/hibernate/shutdown/restart (usually from the shutdown dialog)</_summary> <_description>If true, it uses logind. Otherwise it uses consolekit to shutdown/restart and upower to suspend/hibernate. It is only compatible with upower 0.9 and lower versions (not 0.99 or later).</_description> </key> <key name="settings-daemon-uses-logind" type="b"> - <default>false</default> + <default>true</default> <_summary>Whether or not cinnamon-settings-daemon uses logind to suspend/hibernate/shutdown (either from media-keys or power-manager)</_summary> <_description>If true, it uses logind for all three actions. Otherwise it uses consolekit for shutdown and upower for suspend/hibernate.</_description> </key>
