diff options
author | Ray Strode <rstrode@redhat.com> | 2011-05-18 01:49:22 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2011-06-15 09:58:59 -0400 |
commit | 168f0fab47143adbe95c5be3af74b7c2b435b91f (patch) | |
tree | 8a0226e2136182d188f449c8eab3ad0f425b538b | |
parent | adc116c0f3a06ccb020273d694dc3dc00ee535ff (diff) | |
download | gdm-168f0fab47143adbe95c5be3af74b7c2b435b91f.tar.gz |
daemon: parameterize create_display
There's some logic in create_display and friends,
that would be good to reuse for transient displays.
This commit adds a type argument to create_display
to say what kind of display to create.
Right now it only supports the one type it's always
supported, but that will change in a follow up commit.
https://bugzilla.gnome.org/show_bug.cgi?id=618047
-rw-r--r-- | daemon/gdm-local-display-factory.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c index 7ad27bec..7f7c671d 100644 --- a/daemon/gdm-local-display-factory.c +++ b/daemon/gdm-local-display-factory.c @@ -65,7 +65,8 @@ static void gdm_local_display_factory_class_init (GdmLocalDisplayFactoryC static void gdm_local_display_factory_init (GdmLocalDisplayFactory *factory); static void gdm_local_display_factory_finalize (GObject *object); -static GdmDisplay *create_display (GdmLocalDisplayFactory *factory); +static GdmDisplay *create_display (GdmLocalDisplayFactory *factory, + GType type); static gpointer local_display_factory_object = NULL; @@ -276,9 +277,9 @@ gdm_local_display_factory_create_product_display (GdmLocalDisplayFactory *factor } static void -on_static_display_status_changed (GdmDisplay *display, - GParamSpec *arg1, - GdmLocalDisplayFactory *factory) +on_display_status_changed (GdmDisplay *display, + GParamSpec *arg1, + GdmLocalDisplayFactory *factory) { int status; GdmDisplayStore *store; @@ -301,7 +302,7 @@ on_static_display_status_changed (GdmDisplay *display, gdm_display_store_remove (store, display); /* reset num failures */ factory->priv->num_failures = 0; - create_display (factory); + create_display (factory, GDM_TYPE_STATIC_DISPLAY); break; case GDM_DISPLAY_FAILED: /* leave the display number in factory->priv->displays @@ -314,7 +315,7 @@ on_static_display_status_changed (GdmDisplay *display, /* FIXME: should monitor hardware changes to try again when seats change */ } else { - create_display (factory); + create_display (factory, GDM_TYPE_STATIC_DISPLAY); } break; case GDM_DISPLAY_UNMANAGED: @@ -330,25 +331,26 @@ on_static_display_status_changed (GdmDisplay *display, } static GdmDisplay * -create_display (GdmLocalDisplayFactory *factory) +create_display (GdmLocalDisplayFactory *factory, + GType type) { GdmDisplay *display; guint32 num; num = take_next_display_number (factory); -#if 0 - display = gdm_static_factory_display_new (num); -#else - display = gdm_static_display_new (num); -#endif + if (type == GDM_TYPE_STATIC_DISPLAY) { + display = gdm_static_display_new (num); + } else { + g_assert_not_reached (); + } /* FIXME: don't hardcode seat1? */ g_object_set (display, "seat-id", CK_SEAT1_PATH, NULL); g_signal_connect (display, "notify::status", - G_CALLBACK (on_static_display_status_changed), + G_CALLBACK (on_display_status_changed), factory); store_display (factory, num, display); @@ -375,7 +377,7 @@ gdm_local_display_factory_start (GdmDisplayFactory *base_factory) ret = TRUE; /* FIXME: use seat configuration */ - display = create_display (factory); + display = create_display (factory, GDM_TYPE_STATIC_DISPLAY); if (display == NULL) { ret = FALSE; } |