[Goodies-commits] r5644 - xfce4-power-manager/trunk/src
Ali Abdallah
aliov at xfce.org
Thu Oct 16 14:17:33 CEST 2008
Author: aliov
Date: 2008-10-16 12:17:32 +0000 (Thu, 16 Oct 2008)
New Revision: 5644
Modified:
xfce4-power-manager/trunk/src/xfpm-button.c
xfce4-power-manager/trunk/src/xfpm-common.c
xfce4-power-manager/trunk/src/xfpm-dbus-messages.c
xfce4-power-manager/trunk/src/xfpm-dbus-messages.h
xfce4-power-manager/trunk/src/xfpm-driver.c
xfce4-power-manager/trunk/src/xfpm-lcd-brightness.c
Log:
Inform the Network manager when hibernate/suspend + bug fixes
Modified: xfce4-power-manager/trunk/src/xfpm-button.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-button.c 2008-10-16 07:06:54 UTC (rev 5643)
+++ xfce4-power-manager/trunk/src/xfpm-button.c 2008-10-16 12:17:32 UTC (rev 5644)
@@ -154,7 +154,7 @@
XFPM_DO_NOTHING,
G_PARAM_READWRITE));
g_object_class_install_property(gobject_class,
- PROP_LID_ACTION,
+ PROP_POWER_ACTION,
g_param_spec_enum("power-switch-action",
"power switch action",
"power switch action",
@@ -322,11 +322,15 @@
}
else if ( action == XFPM_DO_SHUTDOWN )
{
+ XFPM_DEBUG("Processing\n");
XfpmButtonPrivate *priv;
priv = XFPM_BUTTON_GET_PRIVATE(bt);
+ g_signal_handler_block(priv->hal,priv->handler_id);
+
+ g_signal_emit(G_OBJECT(bt),signals[XFPM_ACTION_REQUEST],0,XFPM_DO_HIBERNATE,FALSE);
- g_signal_handler_block(priv->hal,priv->handler_id);
- xfpm_hal_shutdown(priv->hal);
+ g_timeout_add(10,(GSourceFunc)_unblock_handler,priv);
+
}
}
@@ -372,6 +376,7 @@
{
if ( bt->power_action == XFPM_DO_NOTHING )
{
+ XFPM_DEBUG("Power action is do nothing\n");
return;
}
Modified: xfce4-power-manager/trunk/src/xfpm-common.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-common.c 2008-10-16 07:06:54 UTC (rev 5643)
+++ xfce4-power-manager/trunk/src/xfpm-common.c 2008-10-16 12:17:32 UTC (rev 5644)
@@ -47,7 +47,7 @@
void
xfpm_lock_screen(void)
{
- gboolean ret = g_spawn_command_line_async("xflock4");
+ gboolean ret = g_spawn_command_line_async("xflock4",NULL);
if ( !ret )
{
Modified: xfce4-power-manager/trunk/src/xfpm-dbus-messages.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-dbus-messages.c 2008-10-16 07:06:54 UTC (rev 5643)
+++ xfce4-power-manager/trunk/src/xfpm-dbus-messages.c 2008-10-16 12:17:32 UTC (rev 5644)
@@ -19,17 +19,46 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#include "xfpm-dbus-messages.h"
+#include "xfpm-debug.h"
+
+static gboolean
+xfpm_dbus_name_has_owner(DBusConnection *connection,const gchar *service)
+{
+ DBusError error;
+ dbus_error_init(&error);
+
+ gboolean ret = dbus_bus_name_has_owner(connection,service,&error);
+
+ if ( dbus_error_is_set(&error) )
+ {
+ XFPM_DEBUG("Failed to get name owner: %s\n",error.message);
+ dbus_error_free(&error);
+ return FALSE;
+ }
+
+ if ( ret == FALSE )
+ {
+ XFPM_DEBUG("Network manager is not installed \n");
+ }
+
+ return ret;
+}
+
static
-DBusConnection *xfpm_dbus_get_connection()
+DBusConnection *xfpm_dbus_get_connection(DBusBusType type)
{
DBusError error;
DBusConnection *connection;
dbus_error_init(&error);
- connection = dbus_bus_get(DBUS_BUS_SESSION,&error);
+ connection = dbus_bus_get(type,&error);
if ( !connection )
{
@@ -83,7 +112,7 @@
DBusConnection *connection;
DBusMessage *message;
- connection = xfpm_dbus_get_connection();
+ connection = xfpm_dbus_get_connection(DBUS_BUS_SESSION);
if ( !connection )
{
return FALSE;
@@ -111,7 +140,6 @@
{
return TRUE;
}
-
}
gboolean xfpm_dbus_send_message_with_reply (const char *signal,gint *get_reply) {
@@ -120,7 +148,7 @@
DBusMessage *message;
DBusPendingCall *pend;
- connection = xfpm_dbus_get_connection();
+ connection = xfpm_dbus_get_connection(DBUS_BUS_SESSION);
if ( !connection )
{
return FALSE;
@@ -177,3 +205,44 @@
dbus_connection_unref(connection);
return TRUE;
}
+
+void xfpm_dbus_send_nm_message (const gchar *signal)
+{
+ DBusConnection *connection;
+ DBusMessage *message;
+
+ connection = xfpm_dbus_get_connection(DBUS_BUS_SYSTEM);
+ if ( !connection )
+ {
+ return;
+ }
+
+ if ( !xfpm_dbus_name_has_owner(connection,NM_SERVICE) )
+ {
+ dbus_connection_unref(connection);
+ return;
+ }
+
+ message = xfpm_dbus_new_message(NM_SERVICE,NM_PATH,NM_INTERFACE,signal);
+
+ if (!message)
+ {
+ return;
+ }
+
+ gboolean ret =
+ dbus_connection_send(connection,
+ message,
+ NULL);
+
+ dbus_message_unref(message);
+ dbus_connection_unref(connection);
+ if ( ret == FALSE )
+ {
+ XFPM_DEBUG("Failed to send message \n");
+ return;
+ } else
+ {
+ return;
+ }
+}
Modified: xfce4-power-manager/trunk/src/xfpm-dbus-messages.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-dbus-messages.h 2008-10-16 07:06:54 UTC (rev 5643)
+++ xfce4-power-manager/trunk/src/xfpm-dbus-messages.h 2008-10-16 12:17:32 UTC (rev 5644)
@@ -25,6 +25,10 @@
#define XFPM_PM_ROOT "/xfpm/power/manager"
#define XFPM_PM_IFACE "xfpm.power.manager"
+#define NM_SERVICE "org.freedesktop.NetworkManager"
+#define NM_PATH "/org/freedesktop/NetworkManager"
+#define NM_INTERFACE "org.freedesktop.NetworkManager"
+
#include <glib.h>
#include <dbus/dbus.h>
@@ -33,6 +37,6 @@
gboolean xfpm_dbus_send_message (const gchar *signal);
gboolean xfpm_dbus_send_message_with_reply (const gchar *signal,gint *get_reply);
+void xfpm_dbus_send_nm_message (const gchar *signal);
-
#endif /* __XFPM_DBUS_MESSAGES */
Modified: xfce4-power-manager/trunk/src/xfpm-driver.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-driver.c 2008-10-16 07:06:54 UTC (rev 5643)
+++ xfce4-power-manager/trunk/src/xfpm-driver.c 2008-10-16 12:17:32 UTC (rev 5644)
@@ -65,6 +65,7 @@
#include "xfpm-notify.h"
#include "xfpm-enum-types.h"
#include "xfpm-settings.h"
+#include "xfpm-dbus-messages.h"
#ifdef HAVE_LIBNOTIFY
#include "xfpm-notify.h"
@@ -615,6 +616,7 @@
}
priv->accept_sleep_request = TRUE;
+ xfpm_dbus_send_nm_message("wakeup");
return FALSE;
@@ -643,6 +645,7 @@
}
priv->accept_sleep_request = TRUE;
+ xfpm_dbus_send_nm_message("wakeup");
return FALSE;
}
@@ -670,6 +673,7 @@
xfpm_driver_hibernate(XfpmDriver *drv,gboolean critical)
{
xfpm_lock_screen();
+ xfpm_dbus_send_nm_message("sleep");
g_timeout_add_seconds(2,(GSourceFunc)xfpm_driver_do_hibernate,drv);
}
@@ -677,6 +681,7 @@
xfpm_driver_suspend(XfpmDriver *drv,gboolean critical)
{
xfpm_lock_screen();
+ xfpm_dbus_send_nm_message("sleep");
g_timeout_add_seconds(2,(GSourceFunc)xfpm_driver_do_suspend,drv);
}
Modified: xfce4-power-manager/trunk/src/xfpm-lcd-brightness.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-lcd-brightness.c 2008-10-16 07:06:54 UTC (rev 5643)
+++ xfce4-power-manager/trunk/src/xfpm-lcd-brightness.c 2008-10-16 12:17:32 UTC (rev 5644)
@@ -340,6 +340,7 @@
if ( !lcd->brightness_control_enabled )
{
+ XFPM_DEBUG("Lcd brightness is disabled\n");
return;
}
More information about the Goodies-commits
mailing list