--- src/gpm-manager.c.orig 2010-06-18 11:06:39.599001817 +0200 +++ src/gpm-manager.c 2010-06-21 12:07:17.059161951 +0200 @@ -95,6 +95,7 @@ ca_proplist *critical_alert_loop_props; DkpClient *client; gboolean on_battery; + gboolean lid_is_closed; gboolean just_resumed; GtkStatusIcon *status_icon; NotifyNotification *notification_general; @@ -992,7 +993,8 @@ "on-battery", &on_battery, "lid-is-closed", &lid_is_closed, NULL); - if (on_battery == manager->priv->on_battery) { + if ((on_battery == manager->priv->on_battery) && + (lid_is_closed == manager->priv->lid_is_closed)){ egg_debug ("same state as before, ignoring"); return; } @@ -1012,6 +1014,7 @@ /* save in local cache */ manager->priv->on_battery = on_battery; + manager->priv->lid_is_closed = lid_is_closed; /* ConsoleKit says we are not on active console */ if (!egg_console_kit_is_active (manager->priv->console)) { @@ -1852,6 +1855,7 @@ DBusGConnection *connection; GError *error = NULL; guint version; + gboolean lid_closed; manager->priv = GPM_MANAGER_GET_PRIVATE (manager); connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error); @@ -1911,6 +1915,7 @@ /* coldplug so we are in the correct state at startup */ g_object_get (manager->priv->client, "on-battery", &manager->priv->on_battery, + "lid-is-closed", &manager->priv->lid_is_closed, NULL); manager->priv->button = gpm_button_new ();