summaryrefslogtreecommitdiff
path: root/daemon
diff options
context:
space:
mode:
authorWilliam Jon McCann <mccann@src.gnome.org>2007-07-16 20:33:55 +0000
committerWilliam Jon McCann <mccann@src.gnome.org>2007-07-16 20:33:55 +0000
commitb8c26c84a0c5ff4df0556b7d8d5675a714b91656 (patch)
treea5498a9efa7db9ae91b998bd528359f3e35ada5f /daemon
parent0b0e96edbde15be1cf78e541f9e2d8a4a7e905c1 (diff)
downloadgdm-b8c26c84a0c5ff4df0556b7d8d5675a714b91656.tar.gz
Make logout work
svn path=/branches/mccann-gobject/; revision=5073
Diffstat (limited to 'daemon')
-rw-r--r--daemon/gdm-product-slave.c17
-rw-r--r--daemon/gdm-slave.c8
-rw-r--r--daemon/gdm-slave.h2
3 files changed, 18 insertions, 9 deletions
diff --git a/daemon/gdm-product-slave.c b/daemon/gdm-product-slave.c
index 4093b624..e9b1b9d4 100644
--- a/daemon/gdm-product-slave.c
+++ b/daemon/gdm-product-slave.c
@@ -95,9 +95,6 @@ enum {
};
enum {
- SESSION_STARTED,
- SESSION_EXITED,
- SESSION_DIED,
LAST_SIGNAL
};
@@ -425,19 +422,20 @@ on_session_started (GdmSession *session,
GdmProductSlave *slave)
{
g_debug ("session started on pid %d", (int) pid);
- g_signal_emit (slave, signals [SESSION_STARTED], 0, pid);
+ /*g_signal_emit (slave, signals [SESSION_STARTED], 0, pid);*/
relay_session_started (slave);
disconnect_relay (slave);
}
static void
-on_session_exited (GdmSession *session,
- int exit_code,
- GdmProductSlave *slave)
+on_session_exited (GdmSession *session,
+ int exit_code,
+ GdmProductSlave *slave)
{
g_debug ("session exited with code %d", exit_code);
- g_signal_emit (slave, signals [SESSION_EXITED], 0, exit_code);
+
+ gdm_slave_stopped (GDM_SLAVE (slave));
}
static void
@@ -448,7 +446,8 @@ on_session_died (GdmSession *session,
g_debug ("session died with signal %d, (%s)",
signal_number,
g_strsignal (signal_number));
- g_signal_emit (slave, signals [SESSION_DIED], 0, signal_number);
+
+ gdm_slave_stopped (GDM_SLAVE (slave));
}
static gboolean
diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c
index 9f49839e..e415b3f9 100644
--- a/daemon/gdm-slave.c
+++ b/daemon/gdm-slave.c
@@ -306,6 +306,14 @@ gdm_slave_stop (GdmSlave *slave)
return ret;
}
+void
+gdm_slave_stopped (GdmSlave *slave)
+{
+ g_return_if_fail (GDM_IS_SLAVE (slave));
+
+ g_signal_emit (slave, signals [STOPPED], 0);
+}
+
static void
_gdm_slave_set_display_id (GdmSlave *slave,
const char *id)
diff --git a/daemon/gdm-slave.h b/daemon/gdm-slave.h
index ffff3fd4..1ac1c316 100644
--- a/daemon/gdm-slave.h
+++ b/daemon/gdm-slave.h
@@ -57,6 +57,8 @@ GType gdm_slave_get_type (void);
gboolean gdm_slave_start (GdmSlave *slave);
gboolean gdm_slave_stop (GdmSlave *slave);
+void gdm_slave_stopped (GdmSlave *slave);
+
G_END_DECLS
#endif /* __GDM_SLAVE_H */