summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--daemon/gdm-display.c11
-rw-r--r--daemon/gdm-display.h3
2 files changed, 12 insertions, 2 deletions
diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c
index d7aa5a65..f479edc5 100644
--- a/daemon/gdm-display.c
+++ b/daemon/gdm-display.c
@@ -626,6 +626,12 @@ on_slave_started (GdmSlave *slave,
_gdm_display_set_status (self, GDM_DISPLAY_MANAGED);
}
+static void
+gdm_display_real_manage (GdmDisplay *self)
+{
+ gdm_slave_start (self->priv->slave);
+}
+
static gboolean
gdm_display_real_prepare (GdmDisplay *self)
{
@@ -674,7 +680,9 @@ on_list_cached_users_complete (GObject *proxy,
g_variant_unref (call_result);
}
- gdm_slave_start (self->priv->slave);
+ if (GDM_DISPLAY_GET_CLASS (self)->manage != NULL) {
+ GDM_DISPLAY_GET_CLASS (self)->manage (self);
+ }
}
static void
@@ -1381,6 +1389,7 @@ gdm_display_class_init (GdmDisplayClass *klass)
object_class->finalize = gdm_display_finalize;
klass->prepare = gdm_display_real_prepare;
+ klass->manage = gdm_display_real_manage;
g_object_class_install_property (object_class,
PROP_ID,
diff --git a/daemon/gdm-display.h b/daemon/gdm-display.h
index 39976b9d..b3685ee7 100644
--- a/daemon/gdm-display.h
+++ b/daemon/gdm-display.h
@@ -56,7 +56,8 @@ typedef struct
GObjectClass parent_class;
/* methods */
- gboolean (*prepare) (GdmDisplay *display);
+ gboolean (*prepare) (GdmDisplay *display);
+ void (*manage) (GdmDisplay *self);
} GdmDisplayClass;
typedef enum