[gnome-power-manager] Fix wrong suspends with docked laptops
- From: Martin Pitt <martinpitt src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-power-manager] Fix wrong suspends with docked laptops
- Date: Mon, 22 Mar 2010 11:57:51 +0000 (UTC)
commit c7728fddf901635794edd7db299c7247f4c27ab3
Author: Martin Pitt <martin pitt ubuntu com>
Date: Wed Mar 17 14:23:15 2010 +0100
Fix wrong suspends with docked laptops
Commit 2afc10 introduced execution of lid/suspend policy when g-p-m got back
the active ConsoleKit session. However, this
* does not fix the original problem in
https://bugzilla.redhat.com/show_bug.cgi?id=497262, since "does not suspend
while no g-p-m is running" is not at all related to ConsoleKit sessions, and
* causes wrong suspends on user switching with docked laptops where the lid is
always closed.
Remove the entire gpm_manager_console_kit_active_changed_cb() and thus
effectively revert 2afc10. We generally handle events only if we have the
active CK session, which is checked in the particular event handlers
themselves. The mere fact of switching CK sessions is not related to
suspend/lid/etc. policies and should not be handled at all in g-p-m.
https://bugzilla.gnome.org/show_bug.cgi?id=613130
https://launchpad.net/bugs/515465
src/gpm-manager.c | 42 +-----------------------------------------
1 files changed, 1 insertions(+), 41 deletions(-)
---
diff --git a/src/gpm-manager.c b/src/gpm-manager.c
index 1dcc6ef..8e4a18e 100644
--- a/src/gpm-manager.c
+++ b/src/gpm-manager.c
@@ -1841,44 +1841,6 @@ gpm_manager_control_resume_cb (GpmControl *control, GpmControlAction action, Gpm
}
/**
- * gpm_manager_console_kit_active_changed_cb:
- **/
-static void
-gpm_manager_console_kit_active_changed_cb (EggConsoleKit *console, gboolean active, GpmManager *manager)
-{
- gboolean ret;
-
- egg_debug ("console now %s", active ? "active" : "inactive");
-
- /* gone inactive */
- if (!active)
- return;
-
- /* get lid state */
- ret = gpm_button_is_lid_closed (manager->priv->button);
- 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");
- gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_LID_AC,
- "The lid has been found closed on ac power.");
- return;
- }
-
- egg_debug ("Performing battery policy as become active when lid down");
- gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_LID_BATT,
- "The lid has been found closed on battery power.");
-}
-
-/**
* gpm_manager_init:
* @manager: This class instance
**/
@@ -1905,10 +1867,8 @@ gpm_manager_init (GpmManager *manager)
/* init to not just_resumed */
manager->priv->just_resumed = FALSE;
- /* don't apply policy when not active */
+ /* don't apply policy when not active, so listen to ConsoleKit */
manager->priv->console = egg_console_kit_new ();
- g_signal_connect (manager->priv->console, "active-changed",
- G_CALLBACK (gpm_manager_console_kit_active_changed_cb), manager);
/* this is a singleton, so we keep a master copy open here */
manager->priv->prefs_server = gpm_prefs_server_new ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]