[Goodies-commits] r5735 - xfce4-power-manager/trunk/src
Ali Abdallah
aliov at xfce.org
Tue Oct 21 16:27:37 CEST 2008
Author: aliov
Date: 2008-10-21 14:27:36 +0000 (Tue, 21 Oct 2008)
New Revision: 5735
Modified:
xfce4-power-manager/trunk/src/xfpm-driver.c
Log:
Check Network Manager status once and disable sending messages to it if not running
Modified: xfce4-power-manager/trunk/src/xfpm-driver.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-driver.c 2008-10-21 11:16:39 UTC (rev 5734)
+++ xfce4-power-manager/trunk/src/xfpm-driver.c 2008-10-21 14:27:36 UTC (rev 5735)
@@ -120,6 +120,7 @@
XfpmDriver *drv);
static void xfpm_driver_load_config(XfpmDriver *drv);
+static void xfpm_driver_check_nm(XfpmDriver *drv);
static void xfpm_driver_check_power_management(XfpmDriver *drv);
static void xfpm_driver_check_power_save(XfpmDriver *drv);
static void xfpm_driver_check(XfpmDriver *drv);
@@ -139,12 +140,11 @@
DBusConnection *conn;
GMainLoop *loop;
- gboolean dialog_opened;
-
SystemFormFactor formfactor;
guint8 power_management;
-
+
+ gboolean dialog_opened;
#ifdef HAVE_LIBNOTIFY
gboolean show_power_management_error;
#endif
@@ -155,6 +155,7 @@
gboolean cpufreq_control;
gboolean buttons_control;
gboolean lcd_brightness_control;
+ gboolean nm_responding;
XfpmHal *hal;
XfpmCpu *cpu;
@@ -187,6 +188,7 @@
XfpmDriverPrivate *priv;
priv = XFPM_DRIVER_GET_PRIVATE(drv);
+ priv->conn = NULL;
priv->power_management = 0;
priv->dialog_opened = FALSE;
@@ -195,6 +197,8 @@
priv->enable_power_save = FALSE;
priv->lcd_brightness_control = FALSE;
priv->accept_sleep_request = TRUE;
+ priv->nm_responding = FALSE;
+
priv->loop = NULL;
priv->cpu = NULL;
priv->adapter = NULL;
@@ -649,7 +653,8 @@
}
priv->accept_sleep_request = TRUE;
- xfpm_dbus_send_nm_message("wakeup");
+ if ( priv->nm_responding )
+ xfpm_dbus_send_nm_message("wakeup");
return FALSE;
@@ -678,7 +683,9 @@
}
priv->accept_sleep_request = TRUE;
- xfpm_dbus_send_nm_message("wakeup");
+ if ( priv->nm_responding )
+ xfpm_dbus_send_nm_message("wakeup");
+
return FALSE;
}
@@ -705,16 +712,27 @@
static void
xfpm_driver_hibernate(XfpmDriver *drv,gboolean critical)
{
+ XfpmDriverPrivate *priv;
+ priv = XFPM_DRIVER_GET_PRIVATE(drv);
+
xfpm_lock_screen();
- xfpm_dbus_send_nm_message("sleep");
+ if ( priv->nm_responding )
+ xfpm_dbus_send_nm_message("sleep");
+
g_timeout_add_seconds(2,(GSourceFunc)xfpm_driver_do_hibernate,drv);
}
static void
xfpm_driver_suspend(XfpmDriver *drv,gboolean critical)
{
+ XfpmDriverPrivate *priv;
+ priv = XFPM_DRIVER_GET_PRIVATE(drv);
+
xfpm_lock_screen();
- xfpm_dbus_send_nm_message("sleep");
+
+ if ( priv->nm_responding )
+ xfpm_dbus_send_nm_message("sleep");
+
g_timeout_add_seconds(2,(GSourceFunc)xfpm_driver_do_suspend,drv);
}
@@ -881,6 +899,16 @@
}
#endif
+static void xfpm_driver_check_nm(XfpmDriver *drv)
+{
+ XFPM_DEBUG("Checking Network Manager interface\n");
+
+ XfpmDriverPrivate *priv;
+ priv = XFPM_DRIVER_GET_PRIVATE(drv);
+
+ priv->nm_responding = xfpm_dbus_name_has_owner(priv->conn,NM_SERVICE);
+
+}
static void
xfpm_driver_check_power_management(XfpmDriver *drv)
@@ -972,6 +1000,8 @@
if ( priv->power_management != 0 )
{
xfpm_driver_check_power_save(drv);
+ /* We only check nm if we can use power management*/
+ xfpm_driver_check_nm(drv);
}
}
More information about the Goodies-commits
mailing list