summaryrefslogtreecommitdiffstats
path: root/x11/gdm/files/patch-daemon-gdm-server.c
diff options
context:
space:
mode:
Diffstat (limited to 'x11/gdm/files/patch-daemon-gdm-server.c')
-rw-r--r--x11/gdm/files/patch-daemon-gdm-server.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/x11/gdm/files/patch-daemon-gdm-server.c b/x11/gdm/files/patch-daemon-gdm-server.c
new file mode 100644
index 0000000..e573505
--- /dev/null
+++ b/x11/gdm/files/patch-daemon-gdm-server.c
@@ -0,0 +1,64 @@
+--- daemon/gdm-server.c.orig 2007-11-19 22:53:12.000000000 +0100
++++ daemon/gdm-server.c 2007-12-25 11:56:07.000000000 +0100
+@@ -44,6 +44,10 @@
+ #include "gdm-common.h"
+ #include "gdm-signal-handler.h"
+
++#include "gdm-settings.h"
++#include "gdm-settings-direct.h"
++#include "gdm-settings-keys.h"
++
+ #include "gdm-server.h"
+
+ extern char **environ;
+@@ -77,6 +81,7 @@
+ char *parent_display_name;
+ char *parent_auth_file;
+ char *chosen_hostname;
++ char *vt;
+
+ guint child_watch_id;
+ };
+@@ -663,7 +668,7 @@
+ gboolean res;
+
+ /* fork X server process */
+- res = gdm_server_spawn (server, NULL);
++ res = gdm_server_spawn (server, server->priv->vt);
+
+ return res;
+ }
+@@ -890,12 +895,33 @@
+ gdm_server_init (GdmServer *server)
+ {
+
++ int vt;
++ gboolean has_vt;
++ GdmSettings *settings = NULL;
+ server->priv = GDM_SERVER_GET_PRIVATE (server);
+
++
++ settings = gdm_settings_new();
++ if (settings == NULL) {
++ g_assert ("Unable to initialize settings");
++ }
++
++ if (! gdm_settings_direct_init (settings, GDMCONFDIR "/gdm.schemas", "/")) {
++ g_assert ("Unable to initialize settings");
++ }
++
++ has_vt = gdm_settings_direct_get_int (GDM_KEY_VT, &vt);
++
++ g_object_unref (settings);
++
+ server->priv->pid = -1;
+ server->priv->command = g_strdup (X_SERVER " -br -verbose");
+ server->priv->log_dir = g_strdup (LOGDIR);
+
++ if (has_vt) {
++ server->priv->vt = g_strdup_printf ("vt %d", vt);
++ }
++
+ add_ready_handler (server);
+ }
+