[gnome-power-manager/gnome-2-28] Add just_resumed flag to inhibit consolekit events
- From: Richard Hughes <rhughes src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-power-manager/gnome-2-28] Add just_resumed flag to inhibit consolekit events
- Date: Wed, 27 Jan 2010 14:25:31 +0000 (UTC)
commit 20727a526792d975ac93aa662948accc618c59b8
Author: Chow Loong Jin <hyperair gmail com>
Date: Wed Jan 27 04:31:12 2010 +0800
Add just_resumed flag to inhibit consolekit events
src/gpm-manager.c | 31 +++++++++++++++++++++++++++++++
1 files changed, 31 insertions(+), 0 deletions(-)
---
diff --git a/src/gpm-manager.c b/src/gpm-manager.c
index 6b5040b..f41edbb 100644
--- a/src/gpm-manager.c
+++ b/src/gpm-manager.c
@@ -91,6 +91,7 @@ struct GpmManagerPrivate
guint32 screensaver_lid_throttle_id;
DkpClient *client;
gboolean on_battery;
+ gboolean just_resumed;
GtkStatusIcon *status_icon;
gboolean supports_notification_actions;
NotifyNotification *notification;
@@ -1731,6 +1732,25 @@ gpm_manager_dpms_mode_changed_cb (GpmDpms *dpms, GpmDpmsMode mode, GpmManager *m
gpm_manager_update_dpms_throttle (manager);
}
+static gboolean
+gpm_manager_reset_just_resumed_cb (gpointer user_data)
+{
+ GpmManager *manager = GPM_MANAGER (user_data);
+ manager->priv->just_resumed = FALSE;
+ return FALSE;
+}
+
+/**
+ * gpm_manager_control_resume_cb
+ **/
+static void
+gpm_manager_control_resume_cb (GpmControl *control, GpmControlAction action, GpmManager *manager)
+{
+ manager->priv->just_resumed = TRUE;
+
+ g_timeout_add_seconds (1, gpm_manager_reset_just_resumed_cb, manager);
+}
+
/**
* gpm_manager_console_kit_active_changed_cb:
**/
@@ -1750,6 +1770,12 @@ gpm_manager_console_kit_active_changed_cb (EggConsoleKit *console, gboolean acti
if (!ret)
return;
+ /* lid state might not be accurate if just resumed. Don't do anything if
+ * we've just resumed as we might end up re-suspending the machine due
+ * to pm-utils and uswsusp changing the tty */
+ if (manager->priv->just_resumed)
+ return;
+
/* get ac state */
if (!manager->priv->on_battery) {
egg_debug ("Performing AC policy as become active when lid down");
@@ -1815,6 +1841,9 @@ gpm_manager_init (GpmManager *manager)
manager->priv->screensaver_dpms_throttle_id = 0;
manager->priv->screensaver_lid_throttle_id = 0;
+ /* init to not just_resumed */
+ manager->priv->just_resumed = FALSE;
+
/* don't apply policy when not active */
manager->priv->console = egg_console_kit_new ();
g_signal_connect (manager->priv->console, "active-changed",
@@ -1901,6 +1930,8 @@ gpm_manager_init (GpmManager *manager)
manager->priv->control = gpm_control_new ();
g_signal_connect (manager->priv->control, "sleep-failure",
G_CALLBACK (gpm_manager_sleep_failure_cb), manager);
+ g_signal_connect (manager->priv->control, "resume",
+ G_CALLBACK (gpm_manager_control_resume_cb), manager);
egg_debug ("creating new tray icon");
manager->priv->tray_icon = gpm_tray_icon_new ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]