summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Cameron <Brian.Cameron@sun.com>2010-04-22 16:13:21 -0500
committerBrian Cameron <Brian.Cameron@sun.com>2010-04-22 16:13:21 -0500
commit0c34aa7949bc24a2a8b3217cefb3c978b892591b (patch)
treeba8a5e3221c12e8fefabdf73a81ce1d1fc533a0e
parentfb2b3df0125c1cfdf130ab065645daf4104b57fd (diff)
downloadgdm-0c34aa7949bc24a2a8b3217cefb3c978b892591b.tar.gz
Fix XDMCP so it shows the greeter again after logout. Patch by Michael
Young. Part of fix for bug #606724.
-rw-r--r--daemon/gdm-xdmcp-greeter-display.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/daemon/gdm-xdmcp-greeter-display.c b/daemon/gdm-xdmcp-greeter-display.c
index 2273f4b3..e836ddae 100644
--- a/daemon/gdm-xdmcp-greeter-display.c
+++ b/daemon/gdm-xdmcp-greeter-display.c
@@ -59,6 +59,7 @@ enum {
static void gdm_xdmcp_greeter_display_class_init (GdmXdmcpGreeterDisplayClass *klass);
static void gdm_xdmcp_greeter_display_init (GdmXdmcpGreeterDisplay *xdmcp_greeter_display);
static void gdm_xdmcp_greeter_display_finalize (GObject *object);
+static gboolean gdm_xdmcp_greeter_display_finish (GdmDisplay *display);
G_DEFINE_TYPE (GdmXdmcpGreeterDisplay, gdm_xdmcp_greeter_display, GDM_TYPE_XDMCP_DISPLAY)
@@ -66,8 +67,10 @@ static void
gdm_xdmcp_greeter_display_class_init (GdmXdmcpGreeterDisplayClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GdmDisplayClass *display_class = GDM_DISPLAY_CLASS (klass);
object_class->finalize = gdm_xdmcp_greeter_display_finalize;
+ display_class->finish = gdm_xdmcp_greeter_display_finish;
g_type_class_add_private (klass, sizeof (GdmXdmcpGreeterDisplayPrivate));
@@ -96,6 +99,18 @@ gdm_xdmcp_greeter_display_finalize (GObject *object)
G_OBJECT_CLASS (gdm_xdmcp_greeter_display_parent_class)->finalize (object);
}
+static gboolean
+gdm_xdmcp_greeter_display_finish (GdmDisplay *display)
+{
+ g_return_val_if_fail (GDM_IS_DISPLAY (display), FALSE);
+
+ GDM_DISPLAY_CLASS (gdm_xdmcp_greeter_display_parent_class)->finish (display);
+
+ gdm_display_unmanage (display);
+
+ return TRUE;
+}
+
GdmDisplay *
gdm_xdmcp_greeter_display_new (const char *hostname,
int number,