[gdm/wip/slave-display-merger: 11/29] xdmcp: consolidate chooser and greeter display
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdm/wip/slave-display-merger: 11/29] xdmcp: consolidate chooser and greeter display
- Date: Tue, 3 Feb 2015 22:17:15 +0000 (UTC)
commit 0c06a127fd554daa7cba8c449770b4b15b9a6f52
Author: Ray Strode <rstrode redhat com>
Date: Tue Feb 3 14:47:22 2015 -0500
xdmcp: consolidate chooser and greeter display
The subclasses do almost exactly the same thing,
so just drop them and instead put the functionality
in the xdmcp base class.
daemon/Makefile.am | 4 --
daemon/gdm-xdmcp-chooser-display.c | 82 ------------------------------------
daemon/gdm-xdmcp-chooser-display.h | 63 ---------------------------
daemon/gdm-xdmcp-display-factory.c | 28 ++++++-------
daemon/gdm-xdmcp-display.c | 23 ++++++++++
daemon/gdm-xdmcp-display.h | 7 ++-
daemon/gdm-xdmcp-greeter-display.c | 82 ------------------------------------
daemon/gdm-xdmcp-greeter-display.h | 64 ----------------------------
8 files changed, 41 insertions(+), 312 deletions(-)
---
diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index 691c939..e6b7ec8 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -238,10 +238,6 @@ XDMCP_SOURCES = \
gdm-xdmcp-display-factory.h \
gdm-xdmcp-display.c \
gdm-xdmcp-display.h \
- gdm-xdmcp-greeter-display.c \
- gdm-xdmcp-greeter-display.h \
- gdm-xdmcp-chooser-display.c \
- gdm-xdmcp-chooser-display.h \
gdm-xdmcp-chooser-slave.c \
gdm-xdmcp-chooser-slave.h \
$(NULL)
diff --git a/daemon/gdm-xdmcp-display-factory.c b/daemon/gdm-xdmcp-display-factory.c
index cff5ceb..1e28d47 100644
--- a/daemon/gdm-xdmcp-display-factory.c
+++ b/daemon/gdm-xdmcp-display-factory.c
@@ -53,10 +53,10 @@
#include <X11/Xdmcp.h>
#include "gdm-common.h"
-#include "gdm-xdmcp-greeter-display.h"
-#include "gdm-xdmcp-chooser-display.h"
+#include "gdm-xdmcp-display.h"
#include "gdm-display-factory.h"
#include "gdm-xdmcp-display-factory.h"
+#include "gdm-xdmcp-chooser-slave.h"
#include "gdm-display-store.h"
#include "gdm-settings-direct.h"
#include "gdm-settings-keys.h"
@@ -1988,9 +1988,9 @@ gdm_xdmcp_send_decline (GdmXdmcpDisplayFactory *factory,
}
static void
-on_hostname_selected (GdmSlave *slave,
- const char *hostname,
- GdmXdmcpChooserDisplay *display)
+on_hostname_selected (GdmSlave *slave,
+ const char *hostname,
+ GdmXdmcpDisplay *display)
{
struct addrinfo hints;
struct addrinfo *ai_list;
@@ -2003,7 +2003,7 @@ on_hostname_selected (GdmSlave *slave,
g_debug ("GdmXdmcpDisplayFactory: hostname selected: %s",
hostname ? hostname : "(null)");
- address = gdm_xdmcp_display_get_remote_address (GDM_XDMCP_DISPLAY (display));
+ address = gdm_xdmcp_display_get_remote_address (display);
g_assert (address != NULL);
@@ -2105,16 +2105,14 @@ gdm_xdmcp_display_create (GdmXdmcpDisplayFactory *factory,
}
}
+ display = gdm_xdmcp_display_new (hostname,
+ displaynum,
+ address,
+ get_next_session_serial (factory));
if (use_chooser) {
- display = gdm_xdmcp_chooser_display_new (hostname,
- displaynum,
- address,
- get_next_session_serial (factory));
- } else {
- display = gdm_xdmcp_greeter_display_new (hostname,
- displaynum,
- address,
- get_next_session_serial (factory));
+ g_object_set (G_OBJECT (display),
+ "slave-type", GDM_TYPE_XDMCP_CHOOSER_SLAVE,
+ NULL);
}
if (display == NULL) {
diff --git a/daemon/gdm-xdmcp-display.c b/daemon/gdm-xdmcp-display.c
index 9b929fa..f45ad53 100644
--- a/daemon/gdm-xdmcp-display.c
+++ b/daemon/gdm-xdmcp-display.c
@@ -198,3 +198,26 @@ gdm_xdmcp_display_init (GdmXdmcpDisplay *xdmcp_display)
xdmcp_display->priv = GDM_XDMCP_DISPLAY_GET_PRIVATE (xdmcp_display);
}
+
+GdmDisplay *
+gdm_xdmcp_display_new (const char *hostname,
+ int number,
+ GdmAddress *address,
+ gint32 session_number)
+{
+ GObject *object;
+ char *x11_display;
+
+ x11_display = g_strdup_printf ("%s:%d", hostname, number);
+ object = g_object_new (GDM_TYPE_XDMCP_DISPLAY,
+ "remote-hostname", hostname,
+ "x11-display-number", number,
+ "x11-display-name", x11_display,
+ "is-local", FALSE,
+ "remote-address", address,
+ "session-number", session_number,
+ NULL);
+ g_free (x11_display);
+
+ return GDM_DISPLAY (object);
+}
diff --git a/daemon/gdm-xdmcp-display.h b/daemon/gdm-xdmcp-display.h
index 10b85a8..e841400 100644
--- a/daemon/gdm-xdmcp-display.h
+++ b/daemon/gdm-xdmcp-display.h
@@ -54,10 +54,13 @@ typedef struct
GType gdm_xdmcp_display_get_type (void);
+GdmDisplay * gdm_xdmcp_display_new (const char *hostname,
+ int number,
+ GdmAddress *address,
+ gint32
session_number);
+
gint32 gdm_xdmcp_display_get_session_number (GdmXdmcpDisplay *display);
GdmAddress * gdm_xdmcp_display_get_remote_address (GdmXdmcpDisplay *display);
-
-
G_END_DECLS
#endif /* __GDM_XDMCP_DISPLAY_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]