[gnome-settings-daemon] power: Ensure any display devices are not still suspended at system resume time



commit 6513239abbbdb5509019372675730593f50b372d
Author: Richard Hughes <richard hughsie com>
Date:   Tue Jul 5 09:40:32 2011 +0100

    power: Ensure any display devices are not still suspended at system resume time

 configure.ac                      |    2 +-
 plugins/power/gsd-power-manager.c |   21 +++++++++++++++++++++
 2 files changed, 22 insertions(+), 1 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index d881269..c893830 100644
--- a/configure.ac
+++ b/configure.ac
@@ -51,7 +51,7 @@ GLIB_REQUIRED_VERSION=2.26.0
 GTK_REQUIRED_VERSION=2.99.3
 GCONF_REQUIRED_VERSION=2.6.1
 GIO_REQUIRED_VERSION=2.26.0
-GNOME_DESKTOP_REQUIRED_VERSION=3.1.3
+GNOME_DESKTOP_REQUIRED_VERSION=3.1.4
 LIBNOTIFY_REQUIRED_VERSION=0.7.3
 
 EXTRA_COMPILE_WARNINGS(yes)
diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
index f7fa080..1bcaa9f 100644
--- a/plugins/power/gsd-power-manager.c
+++ b/plugins/power/gsd-power-manager.c
@@ -2024,6 +2024,25 @@ out:
 }
 
 static void
+upower_notify_resume_cb (UpClient *client,
+                         UpSleepKind sleep_kind,
+                         GsdPowerManager *manager)
+{
+        gboolean ret;
+        GError *error = NULL;
+
+        /* ensure we turn the panel back on after resume */
+        ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
+                                             GNOME_RR_DPMS_ON,
+                                             &error);
+        if (!ret) {
+                g_warning ("failed to turn the panel on after resume: %s",
+                           error->message);
+                g_error_free (error);
+        }
+}
+
+static void
 gsd_power_manager_init (GsdPowerManager *manager)
 {
         manager->priv = GSD_POWER_MANAGER_GET_PRIVATE (manager);
@@ -2033,6 +2052,8 @@ gsd_power_manager_init (GsdPowerManager *manager)
         g_signal_connect (manager->priv->settings, "changed",
                           G_CALLBACK (engine_settings_key_changed_cb), manager);
         manager->priv->up_client = up_client_new ();
+        g_signal_connect (manager->priv->up_client, "notify-resume",
+                          G_CALLBACK (upower_notify_resume_cb), manager);
         manager->priv->lid_is_closed = up_client_get_lid_is_closed (manager->priv->up_client);
         g_signal_connect (manager->priv->up_client, "device-added",
                           G_CALLBACK (engine_device_added_cb), manager);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]