Hello community,

here is the log from the commit of package cinnamon-settings-daemon for 
openSUSE:Factory checked in at 2018-09-24 13:11:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cinnamon-settings-daemon (Old)
 and      /work/SRC/openSUSE:Factory/.cinnamon-settings-daemon.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cinnamon-settings-daemon"

Mon Sep 24 13:11:41 2018 rev:16 rq:636731 version:3.8.5

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/cinnamon-settings-daemon/cinnamon-settings-daemon.changes
        2018-06-27 10:23:19.583869421 +0200
+++ 
/work/SRC/openSUSE:Factory/.cinnamon-settings-daemon.new/cinnamon-settings-daemon.changes
   2018-09-24 13:11:44.861866462 +0200
@@ -1,0 +2,10 @@
+Tue Sep 18 17:27:47 UTC 2018 - [email protected]
+
+- Update to version 3.8.5:
+  * csd-power-helper: Implement optional hybrid-sleep for power and
+    media-key plugins.
+  * csd-power-manager.c: Lock the screensaver if demanded by
+    settings prior to turning off the monitor and initiating
+    suspend.
+
+-------------------------------------------------------------------

Old:
----
  cinnamon-settings-daemon-3.8.4.tar.gz

New:
----
  cinnamon-settings-daemon-3.8.5.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cinnamon-settings-daemon.spec ++++++
--- /var/tmp/diff_new_pack.VnpdSO/_old  2018-09-24 13:11:45.405865500 +0200
+++ /var/tmp/diff_new_pack.VnpdSO/_new  2018-09-24 13:11:45.409865493 +0200
@@ -12,12 +12,12 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           cinnamon-settings-daemon
-Version:        3.8.4
+Version:        3.8.5
 Release:        0
 Summary:        The settings Daemon for the Cinnamon Desktop
 License:        GPL-2.0-or-later AND LGPL-2.1-only

++++++ cinnamon-settings-daemon-3.8.4.tar.gz -> 
cinnamon-settings-daemon-3.8.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cinnamon-settings-daemon-3.8.4/configure.ac 
new/cinnamon-settings-daemon-3.8.5/configure.ac
--- old/cinnamon-settings-daemon-3.8.4/configure.ac     2018-06-22 
20:58:17.000000000 +0200
+++ new/cinnamon-settings-daemon-3.8.5/configure.ac     2018-09-11 
15:45:55.000000000 +0200
@@ -1,7 +1,7 @@
 AC_PREREQ([2.60])
 
 AC_INIT([cinnamon-settings-daemon],
-        [3.8.4],
+        [3.8.5],
         [https://github.com/linuxmint/cinnamon-settings-daemon/issues])
 
 AC_CONFIG_MACRO_DIR([m4])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cinnamon-settings-daemon-3.8.4/debian/changelog 
new/cinnamon-settings-daemon-3.8.5/debian/changelog
--- old/cinnamon-settings-daemon-3.8.4/debian/changelog 2018-06-22 
20:58:17.000000000 +0200
+++ new/cinnamon-settings-daemon-3.8.5/debian/changelog 2018-09-11 
15:45:55.000000000 +0200
@@ -1,3 +1,11 @@
+cinnamon-settings-daemon (3.8.5) tara; urgency=medium
+
+  [ Michael Webster ]
+  * csd-power-helper: Implement optional hybrid-sleep for power and media-key 
plugins.
+  * csd-power-manager.c: Lock the screensaver if demanded by settings prior to 
turning off the monitor and initiating suspend.
+
+ -- Clement Lefebvre <[email protected]>  Tue, 11 Sep 2018 14:45:31 +0100
+
 cinnamon-settings-daemon (3.8.4) tara; urgency=medium
 
   * Power: Reconfigure idle timers when upower state changes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-settings-daemon-3.8.4/plugins/common/csd-power-helper.c 
new/cinnamon-settings-daemon-3.8.5/plugins/common/csd-power-helper.c
--- old/cinnamon-settings-daemon-3.8.4/plugins/common/csd-power-helper.c        
2018-06-22 20:58:17.000000000 +0200
+++ new/cinnamon-settings-daemon-3.8.5/plugins/common/csd-power-helper.c        
2018-09-11 15:45:55.000000000 +0200
@@ -63,6 +63,65 @@
 }
 
 static void
+logind_hybrid_suspend (void)
+{
+        GDBusConnection *bus;
+
+        bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
+        g_dbus_connection_call (bus,
+                                LOGIND_DBUS_NAME,
+                                LOGIND_DBUS_PATH,
+                                LOGIND_DBUS_INTERFACE,
+                                "HybridSleep",
+                                g_variant_new ("(b)", TRUE),
+                                NULL, 0, G_MAXINT, NULL, NULL, NULL);
+        g_object_unref (bus);
+}
+
+static gboolean
+can_hybrid_sleep (void)
+{
+        GDBusConnection *bus;
+        GVariant *res;
+        gchar *rv;
+        gboolean can_hybrid;
+        GError *error = NULL;
+
+        bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
+        res = g_dbus_connection_call_sync (bus,
+                                           LOGIND_DBUS_NAME,
+                                           LOGIND_DBUS_PATH,
+                                           LOGIND_DBUS_INTERFACE,
+                                           "CanHybridSleep",
+                                           NULL,
+                                           G_VARIANT_TYPE_TUPLE,
+                                           0, G_MAXINT, NULL, &error);
+
+        g_object_unref (bus);
+
+        if (error) {
+          g_warning ("Calling CanHybridSleep failed: %s", error->message);
+          g_clear_error (&error);
+
+          return FALSE;
+        }
+
+        g_variant_get (res, "(s)", &rv);
+        g_variant_unref (res);
+
+        can_hybrid = g_strcmp0 (rv, "yes") == 0 ||
+                     g_strcmp0 (rv, "challenge") == 0;
+
+        if (!can_hybrid) {
+          g_warning ("logind does not support hybrid sleep");
+        }
+
+        g_free (rv);
+
+        return can_hybrid;
+}
+
+static void
 logind_hibernate (void)
 {
         GDBusConnection *bus;
@@ -169,10 +228,17 @@
 }
 
 void
-csd_power_suspend (gboolean use_logind, GDBusProxy *upower_proxy)
+csd_power_suspend (gboolean    use_logind,
+                   GDBusProxy *upower_proxy,
+                   gboolean    try_hybrid)
 {
   if (use_logind) {
-    logind_suspend ();
+    if (try_hybrid && can_hybrid_sleep ()) {
+      logind_hybrid_suspend ();
+    }
+    else {
+      logind_suspend ();
+    }
   }
   else {
     upower_suspend (upower_proxy);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-settings-daemon-3.8.4/plugins/common/csd-power-helper.h 
new/cinnamon-settings-daemon-3.8.5/plugins/common/csd-power-helper.h
--- old/cinnamon-settings-daemon-3.8.4/plugins/common/csd-power-helper.h        
2018-06-22 20:58:17.000000000 +0200
+++ new/cinnamon-settings-daemon-3.8.5/plugins/common/csd-power-helper.h        
2018-09-11 15:45:55.000000000 +0200
@@ -26,7 +26,7 @@
 
 #include <gio/gio.h>
 
-void csd_power_suspend   (gboolean use_logind, GDBusProxy *upower_proxy);
+void csd_power_suspend   (gboolean use_logind, GDBusProxy *upower_proxy, 
gboolean try_hybrid);
 void csd_power_hibernate (gboolean use_logind, GDBusProxy *upower_proxy);
 void csd_power_poweroff  (gboolean use_logind);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-settings-daemon-3.8.4/plugins/media-keys/csd-media-keys-manager.c 
new/cinnamon-settings-daemon-3.8.5/plugins/media-keys/csd-media-keys-manager.c
--- 
old/cinnamon-settings-daemon-3.8.4/plugins/media-keys/csd-media-keys-manager.c  
    2018-06-22 20:58:17.000000000 +0200
+++ 
new/cinnamon-settings-daemon-3.8.5/plugins/media-keys/csd-media-keys-manager.c  
    2018-09-11 15:45:55.000000000 +0200
@@ -167,7 +167,8 @@
         /* logind stuff */
         GDBusProxy      *logind_proxy;
         gint             inhibit_keys_fd;
-        GSettings        *session_settings;
+        GSettings        *desktop_session_settings;
+        GSettings        *cinnamon_session_settings;
         gboolean         use_logind;
 
         /* Multihead stuff */
@@ -1458,7 +1459,10 @@
                                            config_key);
         switch (action_type) {
         case CSD_POWER_ACTION_SUSPEND:
-                csd_power_suspend (manager->priv->use_logind, 
manager->priv->upower_proxy);
+                ;
+                gboolean hybrid = g_settings_get_boolean 
(manager->priv->cinnamon_session_settings,
+                                                          
"prefer-hybrid-sleep");
+                csd_power_suspend (manager->priv->use_logind, 
manager->priv->upower_proxy, hybrid);
                 break;
         case CSD_POWER_ACTION_INTERACTIVE:
                 cinnamon_session_shutdown (manager);
@@ -1829,9 +1833,10 @@
                                  CA_PROP_APPLICATION_ID, 
"org.gnome.VolumeControl",
                                  NULL);
 
-        manager->priv->session_settings = 
g_settings_new("org.cinnamon.desktop.session");
-        manager->priv->use_logind = g_settings_get_boolean 
(manager->priv->session_settings, "settings-daemon-uses-logind");
+        manager->priv->desktop_session_settings = 
g_settings_new("org.cinnamon.desktop.session");
+        manager->priv->use_logind = g_settings_get_boolean 
(manager->priv->desktop_session_settings, "settings-daemon-uses-logind");
 
+        manager->priv->cinnamon_session_settings = 
g_settings_new("org.cinnamon.SessionManager");
         /* for the power plugin interface code */
         manager->priv->power_settings = g_settings_new (SETTINGS_POWER_DIR);
 
@@ -1951,6 +1956,21 @@
                 priv->power_settings = NULL;
         }
 
+        if (priv->desktop_session_settings) {
+                g_object_unref (priv->desktop_session_settings);
+                priv->desktop_session_settings = NULL;
+        }
+
+        if (priv->cinnamon_session_settings) {
+                g_object_unref (priv->cinnamon_session_settings);
+                priv->cinnamon_session_settings = NULL;
+        }
+
+        if (priv->interface_settings) {
+                g_object_unref (priv->interface_settings);
+                priv->interface_settings = NULL;
+        }
+
         if (priv->power_screen_proxy) {
                 g_object_unref (priv->power_screen_proxy);
                 priv->power_screen_proxy = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-settings-daemon-3.8.4/plugins/power/csd-power-manager.c 
new/cinnamon-settings-daemon-3.8.5/plugins/power/csd-power-manager.c
--- old/cinnamon-settings-daemon-3.8.4/plugins/power/csd-power-manager.c        
2018-06-22 20:58:17.000000000 +0200
+++ new/cinnamon-settings-daemon-3.8.5/plugins/power/csd-power-manager.c        
2018-09-11 15:45:55.000000000 +0200
@@ -63,6 +63,7 @@
 #define CSD_POWER_SETTINGS_SCHEMA               
"org.cinnamon.settings-daemon.plugins.power"
 #define CSD_XRANDR_SETTINGS_SCHEMA              
"org.cinnamon.settings-daemon.plugins.xrandr"
 #define CSD_SESSION_SETTINGS_SCHEMA             "org.cinnamon.desktop.session"
+#define CSD_CINNAMON_SESSION_SCHEMA             "org.cinnamon.SessionManager"
 
 #define CSD_POWER_DBUS_SERVICE                  
"org.cinnamon.SettingsDaemon.Power"
 #define CSD_POWER_DBUS_PATH                     
"/org/cinnamon/SettingsDaemon/Power"
@@ -184,7 +185,8 @@
         GSettings               *settings;
         GSettings               *settings_screensaver;
         GSettings               *settings_xrandr;
-        GSettings               *settings_session;
+        GSettings               *settings_desktop_session;
+        GSettings               *settings_cinnamon_session;
         gboolean                use_logind;
         UpClient                *up_client;
         GDBusNodeInfo           *introspection_data;
@@ -348,6 +350,17 @@
         return TRUE;
 }
 
+static gboolean
+should_lock_on_suspend (CsdPowerManager *manager)
+{
+    gboolean lock;
+
+    lock = g_settings_get_boolean (manager->priv->settings,
+                                   "lock-on-suspend");
+
+    return lock;
+}
+
 static void
 notify_close_if_showing (NotifyNotification *notification)
 {
@@ -1074,7 +1087,7 @@
 static void
 #if UP_CHECK_VERSION(0,99,0)
 engine_device_removed_cb (UpClient *client, const char *object_path, 
CsdPowerManager *manager)
- {
+{
         guint i;
 
         for (i = 0; i < manager->priv->devices_array->len; i++) {
@@ -1086,7 +1099,10 @@
                 }
         }
         engine_recalculate_state (manager);
+}
+
 #else
+
 engine_device_removed_cb (UpClient *client, UpDevice *device, CsdPowerManager 
*manager)
 {
         gboolean ret;
@@ -1094,8 +1110,8 @@
         if (!ret)
                 return;
         engine_recalculate_state (manager);
-#endif
 }
+#endif
 
 static void
 on_notification_closed (NotifyNotification *notification, gpointer data)
@@ -1994,7 +2010,10 @@
 
         switch (action_type) {
         case CSD_POWER_ACTION_SUSPEND:
-                csd_power_suspend (manager->priv->use_logind, 
manager->priv->upower_proxy);
+                ;
+                gboolean hybrid = g_settings_get_boolean 
(manager->priv->settings_cinnamon_session,
+                                                          
"prefer-hybrid-sleep");
+                csd_power_suspend (manager->priv->use_logind, 
manager->priv->upower_proxy, hybrid);
                 break;
         case CSD_POWER_ACTION_INTERACTIVE:
                 cinnamon_session_shutdown ();
@@ -2387,6 +2406,10 @@
 #endif
         }
 
+        if (should_lock_on_suspend (manager)) {
+                lock_screensaver (manager);
+        }
+
         /* ensure we turn the panel back on after resume */
         ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
                                              GNOME_RR_DPMS_OFF,
@@ -3986,12 +4009,7 @@
 static void
 handle_suspend_actions (CsdPowerManager *manager)
 {
-        gboolean do_lock;
-
-        do_lock = g_settings_get_boolean (manager->priv->settings,
-                                          "lock-on-suspend");
-
-        if (do_lock) {
+        if (should_lock_on_suspend (manager)) {
             lock_screensaver (manager);
         }
 
@@ -4169,8 +4187,9 @@
                           G_CALLBACK (engine_settings_key_changed_cb), 
manager);
         manager->priv->settings_screensaver = g_settings_new 
("org.cinnamon.desktop.screensaver");
         manager->priv->settings_xrandr = g_settings_new 
(CSD_XRANDR_SETTINGS_SCHEMA);
-        manager->priv->settings_session = g_settings_new 
(CSD_SESSION_SETTINGS_SCHEMA);
-        manager->priv->use_logind = g_settings_get_boolean 
(manager->priv->settings_session, "settings-daemon-uses-logind");
+        manager->priv->settings_desktop_session = g_settings_new 
(CSD_SESSION_SETTINGS_SCHEMA);
+        manager->priv->settings_cinnamon_session = g_settings_new 
(CSD_CINNAMON_SESSION_SCHEMA);
+        manager->priv->use_logind = g_settings_get_boolean 
(manager->priv->settings_desktop_session, "settings-daemon-uses-logind");
         manager->priv->inhibit_lid_switch_enabled =
                           g_settings_get_boolean (manager->priv->settings, 
"inhibit-lid-switch");
 
@@ -4388,9 +4407,14 @@
                 manager->priv->settings_xrandr = NULL;
         }
 
-        if (manager->priv->settings_session != NULL) {
-                g_object_unref (manager->priv->settings_session);
-                manager->priv->settings_session = NULL;
+        if (manager->priv->settings_desktop_session != NULL) {
+                g_object_unref (manager->priv->settings_desktop_session);
+                manager->priv->settings_desktop_session = NULL;
+        }
+
+        if (manager->priv->settings_cinnamon_session != NULL) {
+                g_object_unref (manager->priv->settings_cinnamon_session);
+                manager->priv->settings_cinnamon_session = NULL;
         }
 
         if (manager->priv->up_client != NULL) {


Reply via email to