[Goodies-commits] r7187 - in xfce4-power-manager/trunk: . src
Ali Abdallah
aliov at xfce.org
Mon Apr 13 21:49:46 CEST 2009
Author: aliov
Date: 2009-04-13 19:49:46 +0000 (Mon, 13 Apr 2009)
New Revision: 7187
Modified:
xfce4-power-manager/trunk/ChangeLog
xfce4-power-manager/trunk/src/xfpm-main.c
xfce4-power-manager/trunk/src/xfpm-manager.c
xfce4-power-manager/trunk/src/xfpm-manager.h
xfce4-power-manager/trunk/src/xfpm-session.c
Log:
Register to some posix signals+put the restart style to never when we exit the power manager
Modified: xfce4-power-manager/trunk/ChangeLog
===================================================================
--- xfce4-power-manager/trunk/ChangeLog 2009-04-13 19:49:19 UTC (rev 7186)
+++ xfce4-power-manager/trunk/ChangeLog 2009-04-13 19:49:46 UTC (rev 7187)
@@ -1,4 +1,7 @@
+2009-04-13 21:49 Ali aliov at xfce.org
+ * : Register to some posix signals+put the restart style to never when we exit the power manager
+
2009-04-13 21:23 Ali aliov at xfce.org
* : Fix icon refreshing, it should fix bug 5221
Modified: xfce4-power-manager/trunk/src/xfpm-main.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-main.c 2009-04-13 19:49:19 UTC (rev 7186)
+++ xfce4-power-manager/trunk/src/xfpm-main.c 2009-04-13 19:49:46 UTC (rev 7187)
@@ -57,25 +57,55 @@
}
static void
+xfpm_quit_signal (gint sig, gpointer data)
+{
+ XfpmManager *manager = (XfpmManager *) data;
+
+ xfpm_manager_stop (manager);
+}
+
+static void
xfpm_start (DBusGConnection *bus)
{
TRACE("Starting the power manager\n");
+ GError *error = NULL;
XfpmSession *session;
session = xfpm_session_new ();
if ( client_id != NULL )
xfpm_session_set_client_id (session, client_id);
+ XfpmManager *manager;
+ manager = xfpm_manager_new (bus);
+
+ if ( xfce_posix_signal_handler_init (&error))
+ {
+ xfce_posix_signal_handler_set_handler(SIGHUP,
+ xfpm_quit_signal,
+ manager, NULL);
+
+ xfce_posix_signal_handler_set_handler(SIGINT,
+ xfpm_quit_signal,
+ manager, NULL);
+
+ xfce_posix_signal_handler_set_handler(SIGTERM,
+ xfpm_quit_signal,
+ manager, NULL);
+ }
+ else
+ {
+ g_warning("Unable to set up POSIX signal handlers: %s", error->message);
+ g_error_free(error);
+ }
+
if ( no_daemon == FALSE && daemon(0,0) )
{
g_critical ("Could not daemonize");
}
+
+ xfpm_manager_start (manager);
+ gtk_main ();
- XfpmManager *manager;
- manager = xfpm_manager_new(bus);
- xfpm_manager_start(manager);
- gtk_main();
-
g_object_unref (session);
}
Modified: xfce4-power-manager/trunk/src/xfpm-manager.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-manager.c 2009-04-13 19:49:19 UTC (rev 7186)
+++ xfce4-power-manager/trunk/src/xfpm-manager.c 2009-04-13 19:49:46 UTC (rev 7187)
@@ -221,6 +221,13 @@
;
}
+void xfpm_manager_stop (XfpmManager *manager)
+{
+
+ g_return_if_fail (XFPM_IS_MANAGER (manager));
+ xfpm_manager_quit (manager);
+}
+
/*
*
* DBus server implementation
Modified: xfce4-power-manager/trunk/src/xfpm-manager.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-manager.h 2009-04-13 19:49:19 UTC (rev 7186)
+++ xfce4-power-manager/trunk/src/xfpm-manager.h 2009-04-13 19:49:46 UTC (rev 7187)
@@ -42,14 +42,18 @@
typedef struct
{
- GObjectClass parent_class;
+ GObjectClass parent_class;
} XfpmManagerClass;
-GType xfpm_manager_get_type (void) G_GNUC_CONST;
-XfpmManager *xfpm_manager_new (DBusGConnection *bus);
-void xfpm_manager_start (XfpmManager *manager);
+GType xfpm_manager_get_type (void) G_GNUC_CONST;
+XfpmManager *xfpm_manager_new (DBusGConnection *bus);
+
+void xfpm_manager_start (XfpmManager *manager);
+
+void xfpm_manager_stop (XfpmManager *manager);
+
G_END_DECLS
#endif /* __XFPM_MANAGER_H */
Modified: xfce4-power-manager/trunk/src/xfpm-session.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-session.c 2009-04-13 19:49:19 UTC (rev 7186)
+++ xfce4-power-manager/trunk/src/xfpm-session.c 2009-04-13 19:49:46 UTC (rev 7187)
@@ -126,7 +126,7 @@
restart_command[2] = NULL;
session->priv->client = client_session_new_full (NULL,
- SESSION_RESTART_IMMEDIATELY,
+ SESSION_RESTART_IF_RUNNING,
40,
NULL,
(gchar *) PACKAGE_NAME,
@@ -152,9 +152,14 @@
XfpmSession *session;
session = XFPM_SESSION (object);
+
+ if ( session->priv->client != NULL )
+ {
+ if ( session->priv->managed )
+ logout_session (session->priv->client);
- if ( session->priv->client != NULL )
client_session_free (session->priv->client);
+ }
G_OBJECT_CLASS (xfpm_session_parent_class)->finalize (object);
}
@@ -226,7 +231,7 @@
{
g_return_if_fail (XFPM_IS_SESSION (session));
- client_session_set_restart_style (session->priv->client, SESSION_RESTART_IF_RUNNING);
+ client_session_set_restart_style (session->priv->client, SESSION_RESTART_NEVER);
}
gboolean xfpm_session_shutdown (XfpmSession *session)
More information about the Goodies-commits
mailing list