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>


Reply via email to