File gnome-power-manager-notify-idle-sleep.patch of Package gnome-power-manager

From 331e3d5383acc74daee8989f7c0e9df01a3b1421 Mon Sep 17 00:00:00 2001
From: Vincent Untz <vuntz@gnome.org>
Date: Mon, 20 Jul 2009 14:37:02 +0200
Subject: [PATCH] Add a notification when coming back from idle sleep

This lets the user know what happened.
---
 data/gnome-power-manager.schemas.in |   12 ++++++++++++
 src/gpm-common.h                    |    1 +
 src/gpm-manager.c                   |   35 +++++++++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+), 0 deletions(-)

Index: gnome-power-manager-2.30.0/data/gnome-power-manager.schemas.in
===================================================================
--- gnome-power-manager-2.30.0.orig/data/gnome-power-manager.schemas.in
+++ gnome-power-manager-2.30.0/data/gnome-power-manager.schemas.in
@@ -504,6 +504,18 @@
     </schema>
 
     <schema>
+      <key>/schemas/apps/gnome-power-manager/notify/idle_sleep</key>
+      <applyto>/apps/gnome-power-manager/notify/idle_sleep</applyto>
+      <owner>gnome-power-manager</owner>
+      <type>bool</type>
+      <default>false</default>
+      <locale name="C">
+        <short>If an information message should be displayed when returning from idle sleep.</short>
+        <long>If an information message should be displayed when returning from idle sleep.</long>
+      </locale>
+    </schema>
+
+    <schema>
       <key>/schemas/apps/gnome-power-manager/statistics/show_axis_labels</key>
       <applyto>/apps/gnome-power-manager/statistics/show_axis_labels</applyto>
       <owner>gnome-power-manager</owner>
Index: gnome-power-manager-2.30.0/src/gpm-common.h
===================================================================
--- gnome-power-manager-2.30.0.orig/src/gpm-common.h
+++ gnome-power-manager-2.30.0/src/gpm-common.h
@@ -108,6 +108,7 @@ G_BEGIN_DECLS
 #define GPM_CONF_NOTIFY_SLEEP_FAILED		GPM_CONF_DIR "/notify/sleep_failed"
 #define GPM_CONF_NOTIFY_SLEEP_FAILED_URI	GPM_CONF_DIR "/notify/sleep_failed_uri"
 #define GPM_CONF_NOTIFY_LOW_POWER		GPM_CONF_DIR "/notify/low_power"
+#define GPM_CONF_NOTIFY_IDLE_SLEEP		GPM_CONF_DIR "/notify/idle_sleep"
 
 /* statistics */
 #define GPM_CONF_STATS_SHOW_AXIS_LABELS		GPM_CONF_DIR "/statistics/show_axis_labels"
Index: gnome-power-manager-2.30.0/src/gpm-manager.c
===================================================================
--- gnome-power-manager-2.30.0.orig/src/gpm-manager.c
+++ gnome-power-manager-2.30.0/src/gpm-manager.c
@@ -716,6 +716,31 @@ gpm_manager_get_preferences_options (Gpm
 }
 
 /**
+ * gpm_manager_notify_idle_sleep:
+ * @manager: This class instance
+ *
+ * Called when we're back from suspend and the reason for suspend was a
+ * auto sleep due to system inactivity
+ **/
+static void
+gpm_manager_notify_idle_sleep (GpmManager *manager)
+{
+	gboolean show_idle_sleep;
+
+	/* only show this if specified in gconf */
+	show_idle_sleep = gconf_client_get_bool (manager->priv->conf, GPM_CONF_NOTIFY_IDLE_SLEEP, NULL);
+
+	/* only emit if in GConf */
+	if (show_idle_sleep)
+		gpm_manager_notify (manager, &manager->priv->notification_general,
+				    _("System resumed from sleep"),
+				    _("The system automatically went to sleep because the system was idle."),
+				    GPM_MANAGER_NOTIFY_TIMEOUT_SHORT,
+				    GTK_STOCK_DIALOG_INFO,
+				    NOTIFY_URGENCY_NORMAL);
+}
+
+/**
  * gpm_manager_idle_do_sleep:
  * @manager: This class instance
  *
@@ -751,6 +776,11 @@ gpm_manager_idle_do_sleep (GpmManager *m
 				egg_warning ("cannot suspend or hibernate: %s", error->message);
 				g_error_free (error);
 			}
+		} else {
+			/* we're back from suspend without an error, tell the
+			 * user that we've actually suspended due to  system
+			 * idleness */
+			gpm_manager_notify_idle_sleep (manager);
 		}
 
 	} else if (policy == GPM_ACTION_POLICY_HIBERNATE) {
@@ -765,6 +795,11 @@ gpm_manager_idle_do_sleep (GpmManager *m
 				egg_warning ("cannot suspend or hibernate: %s", error->message);
 				g_error_free (error);
 			}
+		} else {
+			/* we're back from hibernate without an error, tell the
+			 * user that we've actually suspended due to  system
+			 * idleness */
+			gpm_manager_notify_idle_sleep (manager);
 		}
 	}
 	g_free (action);