update the plymouth patch

This commit is contained in:
Adam Williamson 2011-11-09 16:43:29 -08:00
parent 389c714d1f
commit ec226c9ba0

View File

@ -1,4 +1,4 @@
From 9768d9e2783de7e836421d9645070bb1917800dd Mon Sep 17 00:00:00 2001 From b865a1ec2965d26dea2db9de085d4d09c3830434 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com> From: Ray Strode <rstrode@redhat.com>
Date: Fri, 27 Nov 2009 18:27:53 -0500 Date: Fri, 27 Nov 2009 18:27:53 -0500
Subject: [PATCH 1/2] Save root window to pixmap at _XROOTPMAP_ID Subject: [PATCH 1/2] Save root window to pixmap at _XROOTPMAP_ID
@ -6,19 +6,19 @@ Subject: [PATCH 1/2] Save root window to pixmap at _XROOTPMAP_ID
This combined with starting the X server with -nr This combined with starting the X server with -nr
will give us a nice fade transition when g-s-d starts will give us a nice fade transition when g-s-d starts
--- ---
daemon/gdm-simple-slave.c | 9 +++++ daemon/gdm-simple-slave.c | 8 +++++
daemon/gdm-slave.c | 72 +++++++++++++++++++++++++++++++++++++++++++++ daemon/gdm-slave.c | 72 +++++++++++++++++++++++++++++++++++++++++++++
daemon/gdm-slave.h | 1 + daemon/gdm-slave.h | 1 +
3 files changed, 82 insertions(+), 0 deletions(-) 3 files changed, 81 insertions(+), 0 deletions(-)
diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c
index 2cbb568..66d1c77 100644 index b9165fd..c091bdd 100644
--- a/daemon/gdm-simple-slave.c --- a/daemon/gdm-simple-slave.c
+++ b/daemon/gdm-simple-slave.c +++ b/daemon/gdm-simple-slave.c
@@ -863,6 +863,15 @@ setup_server (GdmSimpleSlave *slave) @@ -1212,6 +1212,14 @@ setup_server (GdmSimpleSlave *slave)
{
/* Set the busy cursor */ /* Set the initial keyboard layout to something reasonable */
gdm_slave_set_busy_cursor (GDM_SLAVE (slave)); gdm_slave_set_initial_keyboard_layout (GDM_SLAVE (slave));
+ +
+ /* The root window has a background that may be useful + /* The root window has a background that may be useful
+ * to cross fade or transition from when setting the + * to cross fade or transition from when setting the
@ -27,24 +27,23 @@ index 2cbb568..66d1c77 100644
+ * so gnome-settings-daemon can get at it. + * so gnome-settings-daemon can get at it.
+ */ + */
+ gdm_slave_save_root_windows (GDM_SLAVE (slave)); + gdm_slave_save_root_windows (GDM_SLAVE (slave));
+
} }
static void static void
diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c
index e11e16c..da86f77 100644 index 787ef89..09df6de 100644
--- a/daemon/gdm-slave.c --- a/daemon/gdm-slave.c
+++ b/daemon/gdm-slave.c +++ b/daemon/gdm-slave.c
@@ -42,6 +42,7 @@ @@ -43,6 +43,7 @@
#include <dbus/dbus-glib-lowlevel.h> #include <dbus/dbus-glib-lowlevel.h>
#include <X11/Xlib.h> /* for Display */ #include <X11/Xlib.h> /* for Display */
+#include <X11/Xatom.h> /* for XA_PIXMAP */ +#include <X11/Xatom.h> /* for XA_PIXMAP */
#include <X11/cursorfont.h> /* for watch cursor */ #include <X11/cursorfont.h> /* for watch cursor */
#include <X11/extensions/Xrandr.h>
#include "gdm-common.h" #include <X11/Xatom.h>
@@ -351,6 +352,77 @@ gdm_slave_run_script (GdmSlave *slave, @@ -483,6 +484,77 @@ gdm_slave_set_initial_cursor_position (GdmSlave *slave)
return ret; }
} }
+static void +static void
@ -122,22 +121,22 @@ index e11e16c..da86f77 100644
gdm_slave_set_busy_cursor (GdmSlave *slave) gdm_slave_set_busy_cursor (GdmSlave *slave)
{ {
diff --git a/daemon/gdm-slave.h b/daemon/gdm-slave.h diff --git a/daemon/gdm-slave.h b/daemon/gdm-slave.h
index af28b00..1652457 100644 index 7af20ed..aaaa8f2 100644
--- a/daemon/gdm-slave.h --- a/daemon/gdm-slave.h
+++ b/daemon/gdm-slave.h +++ b/daemon/gdm-slave.h
@@ -74,6 +74,7 @@ gboolean gdm_slave_switch_to_user_session (GdmSlave *slave, @@ -78,6 +78,7 @@ void gdm_slave_set_initial_keyboard_layout (GdmSlave *slave);
void gdm_slave_set_initial_cursor_position (GdmSlave *slave);
gboolean gdm_slave_connect_to_x11_display (GdmSlave *slave);
void gdm_slave_set_busy_cursor (GdmSlave *slave); void gdm_slave_set_busy_cursor (GdmSlave *slave);
+void gdm_slave_save_root_windows (GdmSlave *slave); +void gdm_slave_save_root_windows (GdmSlave *slave);
gboolean gdm_slave_run_script (GdmSlave *slave, gboolean gdm_slave_run_script (GdmSlave *slave,
const char *dir, const char *dir,
const char *username); const char *username);
-- --
1.6.5.2 1.7.6.2
From 2343620d464b93cfa46abddf8af14c7268f17df2 Mon Sep 17 00:00:00 2001 From 70dae28439a2ce54441fa24b7dca4a2933f9a348 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com> From: Ray Strode <rstrode@redhat.com>
Date: Fri, 27 Nov 2009 18:52:54 -0500 Date: Fri, 27 Nov 2009 18:52:54 -0500
Subject: [PATCH 2/2] Enable smooth transition between plymouth and X Subject: [PATCH 2/2] Enable smooth transition between plymouth and X
@ -145,13 +144,145 @@ Subject: [PATCH 2/2] Enable smooth transition between plymouth and X
This commit checks if plymouth is running, and if so, This commit checks if plymouth is running, and if so,
turns on the smooth transition between plymouth and X. turns on the smooth transition between plymouth and X.
--- ---
daemon/gdm-server.c | 56 +++++++++++++++++++++++++++ configure.ac | 17 +++++++
daemon/gdm-server.h | 1 + daemon/Makefile.am | 1 +
daemon/gdm-simple-slave.c | 91 ++++++++++++++++++++++++++++++++++++++++++++- daemon/gdm-display.c | 30 +++++++++++-
3 files changed, 147 insertions(+), 1 deletions(-) daemon/gdm-server.c | 56 +++++++++++++++++++++++
daemon/gdm-server.h | 1 +
daemon/gdm-simple-slave.c | 102 ++++++++++++++++++++++++++++++++++++++++++-
daemon/gdm-simple-slave.h | 3 +-
daemon/gdm-slave.c | 23 ++++++++++
daemon/gdm-static-display.c | 17 +++++++
daemon/simple-slave-main.c | 4 +-
data/Makefile.am | 8 +++
11 files changed, 255 insertions(+), 7 deletions(-)
diff --git a/configure.ac b/configure.ac
index 10f6d60..bae6186 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1311,6 +1311,23 @@ GDM_SIMPLE_GREETER_EXTENSIONS_DATA_DIR=${datadir}/gdm/simple-greeter/extensions
AC_SUBST(GDM_SIMPLE_GREETER_EXTENSIONS_DATA_DIR)
dnl ---------------------------------------------------------------------------
+dnl - Directory to spool events from other processes
+dnl ---------------------------------------------------------------------------
+
+AC_ARG_WITH(spool-dir,
+ AS_HELP_STRING([--with-spool-dir=<dir>],
+ [spool directory]))
+
+if ! test -z "$with_spool_dir"; then
+ GDM_SPOOL_DIR=$with_spool_dir
+else
+ GDM_SPOOL_DIR=${localstatedir}/spool/gdm
+fi
+
+AC_SUBST(GDM_SPOOL_DIR)
+
+
+dnl ---------------------------------------------------------------------------
dnl - Finish
dnl ---------------------------------------------------------------------------
diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index 65e82b8..9ec0f4a 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -15,6 +15,7 @@ AM_CPPFLAGS = \
-DLOGDIR=\"$(logdir)\" \
-DSBINDIR=\"$(sbindir)\" \
-DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
+ -DGDM_SPOOL_DIR=\"$(GDM_SPOOL_DIR)\" \
-DGDM_XAUTH_DIR=\"$(GDM_XAUTH_DIR)\" \
-DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \
-DGDM_CACHE_DIR=\""$(localstatedir)/cache/gdm"\" \
diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c
index 6ee675a..83ae445 100644
--- a/daemon/gdm-display.c
+++ b/daemon/gdm-display.c
@@ -65,7 +65,9 @@ struct GdmDisplayPrivate
gsize x11_cookie_size;
GdmDisplayAccessFile *access_file;
- gboolean is_local;
+ guint is_local : 1;
+ guint force_active_vt : 1;
+
guint finish_idle_id;
GdmSlaveProxy *slave_proxy;
@@ -84,6 +86,7 @@ enum {
PROP_X11_COOKIE,
PROP_X11_AUTHORITY_FILE,
PROP_IS_LOCAL,
+ PROP_FORCE_ACTIVE_VT,
PROP_SLAVE_COMMAND,
};
@@ -574,9 +577,10 @@ gdm_display_real_prepare (GdmDisplay *display)
gdm_slave_proxy_set_log_path (display->priv->slave_proxy, log_path);
g_free (log_path);
- command = g_strdup_printf ("%s --display-id %s",
+ command = g_strdup_printf ("%s --display-id %s %s",
display->priv->slave_command,
- display->priv->id);
+ display->priv->id,
+ display->priv->force_active_vt? "--force-active-vt" : "");
gdm_slave_proxy_set_command (display->priv->slave_proxy, command);
g_free (command);
@@ -824,6 +828,13 @@ _gdm_display_set_is_local (GdmDisplay *display,
}
static void
+_gdm_display_set_force_active_vt (GdmDisplay *display,
+ gboolean force_active_vt)
+{
+ display->priv->force_active_vt = force_active_vt;
+}
+
+static void
_gdm_display_set_slave_command (GdmDisplay *display,
const char *command)
{
@@ -866,6 +877,9 @@ gdm_display_set_property (GObject *object,
case PROP_IS_LOCAL:
_gdm_display_set_is_local (self, g_value_get_boolean (value));
break;
+ case PROP_FORCE_ACTIVE_VT:
+ _gdm_display_set_force_active_vt (self, g_value_get_boolean (value));
+ break;
case PROP_SLAVE_COMMAND:
_gdm_display_set_slave_command (self, g_value_get_string (value));
break;
@@ -914,6 +928,9 @@ gdm_display_get_property (GObject *object,
case PROP_IS_LOCAL:
g_value_set_boolean (value, self->priv->is_local);
break;
+ case PROP_FORCE_ACTIVE_VT:
+ g_value_set_boolean (value, self->priv->force_active_vt);
+ break;
case PROP_SLAVE_COMMAND:
g_value_set_string (value, self->priv->slave_command);
break;
@@ -1084,6 +1101,13 @@ gdm_display_class_init (GdmDisplayClass *klass)
NULL,
TRUE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_FORCE_ACTIVE_VT,
+ g_param_spec_boolean ("force-active-vt",
+ NULL,
+ NULL,
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (object_class,
PROP_SLAVE_COMMAND,
diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
index ba10386..3ec21e9 100644 index 62ffca1..8d270bb 100644
--- a/daemon/gdm-server.c --- a/daemon/gdm-server.c
+++ b/daemon/gdm-server.c +++ b/daemon/gdm-server.c
@@ -32,8 +32,11 @@ @@ -32,8 +32,11 @@
@ -163,10 +294,10 @@ index ba10386..3ec21e9 100644
+#include <linux/vt.h> +#include <linux/vt.h>
+ +
#include <glib.h> #ifdef HAVE_SYS_PRCTL_H
#include <glib/gi18n.h> #include <sys/prctl.h>
#include <glib/gstdio.h> #endif
@@ -663,6 +666,44 @@ gdm_server_spawn (GdmServer *server, @@ -673,6 +676,44 @@ gdm_server_spawn (GdmServer *server,
return ret; return ret;
} }
@ -211,7 +342,7 @@ index ba10386..3ec21e9 100644
/** /**
* gdm_server_start: * gdm_server_start:
* @disp: Pointer to a GdmDisplay structure * @disp: Pointer to a GdmDisplay structure
@@ -681,6 +722,21 @@ gdm_server_start (GdmServer *server) @@ -691,6 +732,21 @@ gdm_server_start (GdmServer *server)
return res; return res;
} }
@ -246,18 +377,26 @@ index 535a69a..bd6c60a 100644
char * gdm_server_get_display_device (GdmServer *server); char * gdm_server_get_display_device (GdmServer *server);
diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c
index 66d1c77..4703537 100644 index c091bdd..f8dd56f 100644
--- a/daemon/gdm-simple-slave.c --- a/daemon/gdm-simple-slave.c
+++ b/daemon/gdm-simple-slave.c +++ b/daemon/gdm-simple-slave.c
@@ -84,6 +84,7 @@ struct GdmSimpleSlavePrivate @@ -90,6 +90,7 @@ struct GdmSimpleSlavePrivate
guint start_session_when_ready : 1; guint start_session_when_ready : 1;
guint waiting_to_start_session : 1; guint waiting_to_start_session : 1;
+ guint plymouth_is_running : 1; + guint plymouth_is_running : 1;
}; #ifdef HAVE_LOGINDEVPERM
gboolean use_logindevperm;
#endif
@@ -97,6 +98,7 @@ struct GdmSimpleSlavePrivate
enum { enum {
@@ -858,6 +859,72 @@ on_start_session_later (GdmGreeterServer *session, PROP_0,
+ FORCE_ACTIVE_VT
};
static void gdm_simple_slave_class_init (GdmSimpleSlaveClass *klass);
@@ -1201,6 +1203,72 @@ on_start_session_later (GdmGreeterServer *session,
slave->priv->start_session_when_ready = FALSE; slave->priv->start_session_when_ready = FALSE;
} }
@ -330,10 +469,11 @@ index 66d1c77..4703537 100644
static void static void
setup_server (GdmSimpleSlave *slave) setup_server (GdmSimpleSlave *slave)
{ {
@@ -872,6 +939,10 @@ setup_server (GdmSimpleSlave *slave) @@ -1220,6 +1288,11 @@ setup_server (GdmSimpleSlave *slave)
* so gnome-settings-daemon can get at it.
*/ */
gdm_slave_save_root_windows (GDM_SLAVE (slave)); gdm_slave_save_root_windows (GDM_SLAVE (slave));
+
+ /* Plymouth is waiting for the go-ahead to exit */ + /* Plymouth is waiting for the go-ahead to exit */
+ if (slave->priv->plymouth_is_running) { + if (slave->priv->plymouth_is_running) {
+ plymouth_quit_with_transition (slave); + plymouth_quit_with_transition (slave);
@ -341,7 +481,7 @@ index 66d1c77..4703537 100644
} }
static void static void
@@ -1063,6 +1134,10 @@ on_server_exited (GdmServer *server, @@ -1423,6 +1496,10 @@ on_server_exited (GdmServer *server,
g_debug ("GdmSimpleSlave: server exited with code %d\n", exit_code); g_debug ("GdmSimpleSlave: server exited with code %d\n", exit_code);
gdm_slave_stopped (GDM_SLAVE (slave)); gdm_slave_stopped (GDM_SLAVE (slave));
@ -352,7 +492,7 @@ index 66d1c77..4703537 100644
} }
static void static void
@@ -1075,6 +1150,10 @@ on_server_died (GdmServer *server, @@ -1435,6 +1512,10 @@ on_server_died (GdmServer *server,
g_strsignal (signal_number)); g_strsignal (signal_number));
gdm_slave_stopped (GDM_SLAVE (slave)); gdm_slave_stopped (GDM_SLAVE (slave));
@ -363,7 +503,21 @@ index 66d1c77..4703537 100644
} }
static gboolean static gboolean
@@ -1119,7 +1198,14 @@ gdm_simple_slave_run (GdmSimpleSlave *slave) @@ -1443,11 +1524,13 @@ gdm_simple_slave_run (GdmSimpleSlave *slave)
char *display_name;
char *auth_file;
gboolean display_is_local;
+ gboolean force_active_vt;
g_object_get (slave,
"display-is-local", &display_is_local,
"display-name", &display_name,
"display-x11-authority-file", &auth_file,
+ "force-active-vt", &force_active_vt,
NULL);
/* if this is local display start a server if one doesn't
@@ -1479,7 +1562,17 @@ gdm_simple_slave_run (GdmSimpleSlave *slave)
G_CALLBACK (on_server_ready), G_CALLBACK (on_server_ready),
slave); slave);
@ -374,12 +528,15 @@ index 66d1c77..4703537 100644
+ plymouth_prepare_for_transition (slave); + plymouth_prepare_for_transition (slave);
+ res = gdm_server_start_on_active_vt (slave->priv->server); + res = gdm_server_start_on_active_vt (slave->priv->server);
+ } else { + } else {
+ res = gdm_server_start (slave->priv->server); + if (force_active_vt)
+ res = gdm_server_start_on_active_vt (slave->priv->server);
+ else
+ res = gdm_server_start (slave->priv->server);
+ } + }
if (! res) { if (! res) {
g_warning (_("Could not start the X " g_warning (_("Could not start the X "
"server (your graphical environment) " "server (your graphical environment) "
@@ -1129,6 +1215,9 @@ gdm_simple_slave_run (GdmSimpleSlave *slave) @@ -1489,6 +1582,9 @@ gdm_simple_slave_run (GdmSimpleSlave *slave)
"In the meantime this display will be " "In the meantime this display will be "
"disabled. Please restart GDM when " "disabled. Please restart GDM when "
"the problem is corrected.")); "the problem is corrected."));
@ -389,157 +546,7 @@ index 66d1c77..4703537 100644
exit (1); exit (1);
} }
-- @@ -1645,12 +1741,14 @@ gdm_simple_slave_finalize (GObject *object)
1.6.5.2
diff -up gdm-2.29.92/configure.ac.force-active-vt gdm-2.29.92/configure.ac
--- gdm-2.29.92/configure.ac.force-active-vt 2010-03-08 17:09:47.000000000 -0500
+++ gdm-2.29.92/configure.ac 2010-03-25 19:56:04.160116854 -0400
@@ -1265,6 +1265,23 @@ AC_SUBST(GDM_SCREENSHOT_DIR)
dnl ---------------------------------------------------------------------------
+dnl - Directory to spool events from other processes
+dnl ---------------------------------------------------------------------------
+
+AC_ARG_WITH(spool-dir,
+ AS_HELP_STRING([--with-spool-dir=<dir>],
+ [spool directory]))
+
+if ! test -z "$with_spool_dir"; then
+ GDM_SPOOL_DIR=$with_spool_dir
+else
+ GDM_SPOOL_DIR=${localstatedir}/spool/gdm
+fi
+
+AC_SUBST(GDM_SPOOL_DIR)
+
+
+dnl ---------------------------------------------------------------------------
dnl - Finish
dnl ---------------------------------------------------------------------------
diff -up gdm-2.29.92/daemon/gdm-display.c.force-active-vt gdm-2.29.92/daemon/gdm-display.c
--- gdm-2.29.92/daemon/gdm-display.c.force-active-vt 2010-03-08 16:53:57.000000000 -0500
+++ gdm-2.29.92/daemon/gdm-display.c 2010-03-25 19:56:04.161124001 -0400
@@ -65,7 +65,9 @@ struct GdmDisplayPrivate
gsize x11_cookie_size;
GdmDisplayAccessFile *access_file;
- gboolean is_local;
+ guint is_local : 1;
+ guint force_active_vt : 1;
+
guint finish_idle_id;
GdmSlaveProxy *slave_proxy;
@@ -84,6 +86,7 @@ enum {
PROP_X11_COOKIE,
PROP_X11_AUTHORITY_FILE,
PROP_IS_LOCAL,
+ PROP_FORCE_ACTIVE_VT,
PROP_SLAVE_COMMAND,
};
@@ -574,9 +577,10 @@ gdm_display_real_prepare (GdmDisplay *di
gdm_slave_proxy_set_log_path (display->priv->slave_proxy, log_path);
g_free (log_path);
- command = g_strdup_printf ("%s --display-id %s",
+ command = g_strdup_printf ("%s --display-id %s %s",
display->priv->slave_command,
- display->priv->id);
+ display->priv->id,
+ display->priv->force_active_vt? "--force-active-vt" : "");
gdm_slave_proxy_set_command (display->priv->slave_proxy, command);
g_free (command);
@@ -824,6 +828,13 @@ _gdm_display_set_is_local (GdmDisplay
}
static void
+_gdm_display_set_force_active_vt (GdmDisplay *display,
+ gboolean force_active_vt)
+{
+ display->priv->force_active_vt = force_active_vt;
+}
+
+static void
_gdm_display_set_slave_command (GdmDisplay *display,
const char *command)
{
@@ -866,6 +877,9 @@ gdm_display_set_property (GObject
case PROP_IS_LOCAL:
_gdm_display_set_is_local (self, g_value_get_boolean (value));
break;
+ case PROP_FORCE_ACTIVE_VT:
+ _gdm_display_set_force_active_vt (self, g_value_get_boolean (value));
+ break;
case PROP_SLAVE_COMMAND:
_gdm_display_set_slave_command (self, g_value_get_string (value));
break;
@@ -914,6 +928,9 @@ gdm_display_get_property (GObject
case PROP_IS_LOCAL:
g_value_set_boolean (value, self->priv->is_local);
break;
+ case PROP_FORCE_ACTIVE_VT:
+ g_value_set_boolean (value, self->priv->force_active_vt);
+ break;
case PROP_SLAVE_COMMAND:
g_value_set_string (value, self->priv->slave_command);
break;
@@ -1084,6 +1101,13 @@ gdm_display_class_init (GdmDisplayClass
NULL,
TRUE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_FORCE_ACTIVE_VT,
+ g_param_spec_boolean ("force-active-vt",
+ NULL,
+ NULL,
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (object_class,
PROP_SLAVE_COMMAND,
diff -up gdm-2.29.92/daemon/gdm-simple-slave.c.force-active-vt gdm-2.29.92/daemon/gdm-simple-slave.c
--- gdm-2.29.92/daemon/gdm-simple-slave.c.force-active-vt 2010-03-25 19:56:04.156102795 -0400
+++ gdm-2.29.92/daemon/gdm-simple-slave.c 2010-03-25 19:58:27.983101340 -0400
@@ -89,6 +89,7 @@ struct GdmSimpleSlavePrivate
enum {
PROP_0,
+ FORCE_ACTIVE_VT
};
static void gdm_simple_slave_class_init (GdmSimpleSlaveClass *klass);
@@ -1198,11 +1199,13 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
char *display_name;
char *auth_file;
gboolean display_is_local;
+ gboolean force_active_vt;
g_object_get (slave,
"display-is-local", &display_is_local,
"display-name", &display_name,
"display-x11-authority-file", &auth_file,
+ "force-active-vt", &force_active_vt,
NULL);
/* if this is local display start a server if one doesn't
@@ -1240,7 +1243,10 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
plymouth_prepare_for_transition (slave);
res = gdm_server_start_on_active_vt (slave->priv->server);
} else {
- res = gdm_server_start (slave->priv->server);
+ if (force_active_vt)
+ res = gdm_server_start_on_active_vt (slave->priv->server);
+ else
+ res = gdm_server_start (slave->priv->server);
}
if (! res) {
g_warning (_("Could not start the X "
@@ -1392,12 +1398,14 @@ gdm_simple_slave_finalize (GObject *obje
} }
GdmSlave * GdmSlave *
@ -555,9 +562,10 @@ diff -up gdm-2.29.92/daemon/gdm-simple-slave.c.force-active-vt gdm-2.29.92/daemo
NULL); NULL);
return GDM_SLAVE (object); return GDM_SLAVE (object);
diff -up gdm-2.29.92/daemon/gdm-simple-slave.h.force-active-vt gdm-2.29.92/daemon/gdm-simple-slave.h diff --git a/daemon/gdm-simple-slave.h b/daemon/gdm-simple-slave.h
--- gdm-2.29.92/daemon/gdm-simple-slave.h.force-active-vt 2010-03-08 16:53:57.000000000 -0500 index 1f1aa1d..e9aa624 100644
+++ gdm-2.29.92/daemon/gdm-simple-slave.h 2010-03-25 19:56:04.166103788 -0400 --- a/daemon/gdm-simple-slave.h
+++ b/daemon/gdm-simple-slave.h
@@ -48,7 +48,8 @@ typedef struct @@ -48,7 +48,8 @@ typedef struct
} GdmSimpleSlaveClass; } GdmSimpleSlaveClass;
@ -568,10 +576,11 @@ diff -up gdm-2.29.92/daemon/gdm-simple-slave.h.force-active-vt gdm-2.29.92/daemo
G_END_DECLS G_END_DECLS
diff -up gdm-2.29.92/daemon/gdm-slave.c.force-active-vt gdm-2.29.92/daemon/gdm-slave.c diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c
--- gdm-2.29.92/daemon/gdm-slave.c.force-active-vt 2010-03-25 19:56:04.153102867 -0400 index 09df6de..ce467b2 100644
+++ gdm-2.29.92/daemon/gdm-slave.c 2010-03-25 19:56:04.168101809 -0400 --- a/daemon/gdm-slave.c
@@ -84,6 +84,7 @@ struct GdmSlavePrivate +++ b/daemon/gdm-slave.c
@@ -92,6 +92,7 @@ struct GdmSlavePrivate
char *display_hostname; char *display_hostname;
gboolean display_is_local; gboolean display_is_local;
gboolean display_is_parented; gboolean display_is_parented;
@ -579,7 +588,7 @@ diff -up gdm-2.29.92/daemon/gdm-slave.c.force-active-vt gdm-2.29.92/daemon/gdm-s
char *display_seat_id; char *display_seat_id;
char *display_x11_authority_file; char *display_x11_authority_file;
char *parent_display_name; char *parent_display_name;
@@ -102,6 +103,7 @@ enum { @@ -111,6 +112,7 @@ enum {
PROP_DISPLAY_NUMBER, PROP_DISPLAY_NUMBER,
PROP_DISPLAY_HOSTNAME, PROP_DISPLAY_HOSTNAME,
PROP_DISPLAY_IS_LOCAL, PROP_DISPLAY_IS_LOCAL,
@ -587,7 +596,7 @@ diff -up gdm-2.29.92/daemon/gdm-slave.c.force-active-vt gdm-2.29.92/daemon/gdm-s
PROP_DISPLAY_SEAT_ID, PROP_DISPLAY_SEAT_ID,
PROP_DISPLAY_X11_AUTHORITY_FILE PROP_DISPLAY_X11_AUTHORITY_FILE
}; };
@@ -1402,6 +1404,13 @@ _gdm_slave_set_display_is_local (GdmSlav @@ -1651,6 +1653,13 @@ _gdm_slave_set_display_is_local (GdmSlave *slave,
} }
static void static void
@ -601,7 +610,7 @@ diff -up gdm-2.29.92/daemon/gdm-slave.c.force-active-vt gdm-2.29.92/daemon/gdm-s
gdm_slave_set_property (GObject *object, gdm_slave_set_property (GObject *object,
guint prop_id, guint prop_id,
const GValue *value, const GValue *value,
@@ -1433,6 +1442,9 @@ gdm_slave_set_property (GObject *ob @@ -1682,6 +1691,9 @@ gdm_slave_set_property (GObject *object,
case PROP_DISPLAY_IS_LOCAL: case PROP_DISPLAY_IS_LOCAL:
_gdm_slave_set_display_is_local (self, g_value_get_boolean (value)); _gdm_slave_set_display_is_local (self, g_value_get_boolean (value));
break; break;
@ -611,7 +620,7 @@ diff -up gdm-2.29.92/daemon/gdm-slave.c.force-active-vt gdm-2.29.92/daemon/gdm-s
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break; break;
@@ -1471,6 +1483,9 @@ gdm_slave_get_property (GObject *obje @@ -1720,6 +1732,9 @@ gdm_slave_get_property (GObject *object,
case PROP_DISPLAY_IS_LOCAL: case PROP_DISPLAY_IS_LOCAL:
g_value_set_boolean (value, self->priv->display_is_local); g_value_set_boolean (value, self->priv->display_is_local);
break; break;
@ -621,7 +630,7 @@ diff -up gdm-2.29.92/daemon/gdm-slave.c.force-active-vt gdm-2.29.92/daemon/gdm-s
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break; break;
@@ -1596,6 +1611,14 @@ gdm_slave_class_init (GdmSlaveClass *kla @@ -1845,6 +1860,14 @@ gdm_slave_class_init (GdmSlaveClass *klass)
TRUE, TRUE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
@ -636,10 +645,11 @@ diff -up gdm-2.29.92/daemon/gdm-slave.c.force-active-vt gdm-2.29.92/daemon/gdm-s
signals [STOPPED] = signals [STOPPED] =
g_signal_new ("stopped", g_signal_new ("stopped",
G_TYPE_FROM_CLASS (object_class), G_TYPE_FROM_CLASS (object_class),
diff -up gdm-2.29.92/daemon/gdm-static-display.c.force-active-vt gdm-2.29.92/daemon/gdm-static-display.c diff --git a/daemon/gdm-static-display.c b/daemon/gdm-static-display.c
--- gdm-2.29.92/daemon/gdm-static-display.c.force-active-vt 2010-03-08 16:53:57.000000000 -0500 index 16953f9..397f07e 100644
+++ gdm-2.29.92/daemon/gdm-static-display.c 2010-03-25 19:56:04.168101809 -0400 --- a/daemon/gdm-static-display.c
@@ -86,10 +86,27 @@ gdm_static_display_remove_user_authoriza +++ b/daemon/gdm-static-display.c
@@ -81,10 +81,27 @@ gdm_static_display_remove_user_authorization (GdmDisplay *display,
} }
static gboolean static gboolean
@ -667,21 +677,11 @@ diff -up gdm-2.29.92/daemon/gdm-static-display.c.force-active-vt gdm-2.29.92/dae
GDM_DISPLAY_CLASS (gdm_static_display_parent_class)->manage (display); GDM_DISPLAY_CLASS (gdm_static_display_parent_class)->manage (display);
return TRUE; return TRUE;
diff -up gdm-2.29.92/daemon/Makefile.am.force-active-vt gdm-2.29.92/daemon/Makefile.am diff --git a/daemon/simple-slave-main.c b/daemon/simple-slave-main.c
--- gdm-2.29.92/daemon/Makefile.am.force-active-vt 2010-03-08 16:53:57.000000000 -0500 index 057492b..afa60a4 100644
+++ gdm-2.29.92/daemon/Makefile.am 2010-03-25 19:56:04.169102529 -0400 --- a/daemon/simple-slave-main.c
@@ -14,6 +14,7 @@ AM_CPPFLAGS = \ +++ b/daemon/simple-slave-main.c
-DLOGDIR=\"$(logdir)\" \ @@ -177,9 +177,11 @@ main (int argc,
-DSBINDIR=\"$(sbindir)\" \
-DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
+ -DGDM_SPOOL_DIR=\"$(GDM_SPOOL_DIR)\" \
-DGDM_XAUTH_DIR=\"$(GDM_XAUTH_DIR)\" \
-DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \
-DGDM_CACHE_DIR=\""$(localstatedir)/cache/gdm"\" \
diff -up gdm-2.29.92/daemon/simple-slave-main.c.force-active-vt gdm-2.29.92/daemon/simple-slave-main.c
--- gdm-2.29.92/daemon/simple-slave-main.c.force-active-vt 2010-03-08 16:53:57.000000000 -0500
+++ gdm-2.29.92/daemon/simple-slave-main.c 2010-03-25 19:56:04.169102529 -0400
@@ -178,9 +178,11 @@ main (int argc,
DBusGConnection *connection; DBusGConnection *connection;
GdmSlave *slave; GdmSlave *slave;
static char *display_id = NULL; static char *display_id = NULL;
@ -693,7 +693,7 @@ diff -up gdm-2.29.92/daemon/simple-slave-main.c.force-active-vt gdm-2.29.92/daem
{ NULL } { NULL }
}; };
@@ -248,7 +250,7 @@ main (int argc, @@ -246,7 +248,7 @@ main (int argc,
gdm_signal_handler_add (signal_handler, SIGUSR1, signal_cb, NULL); gdm_signal_handler_add (signal_handler, SIGUSR1, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGUSR2, signal_cb, NULL); gdm_signal_handler_add (signal_handler, SIGUSR2, signal_cb, NULL);
@ -702,10 +702,11 @@ diff -up gdm-2.29.92/daemon/simple-slave-main.c.force-active-vt gdm-2.29.92/daem
if (slave == NULL) { if (slave == NULL) {
goto out; goto out;
} }
diff -up gdm-2.29.92/data/Makefile.am.force-active-vt gdm-2.29.92/data/Makefile.am diff --git a/data/Makefile.am b/data/Makefile.am
--- gdm-2.29.92/data/Makefile.am.force-active-vt 2010-03-08 16:53:57.000000000 -0500 index 3175436..5c11b03 100644
+++ gdm-2.29.92/data/Makefile.am 2010-03-25 19:56:04.170104437 -0400 --- a/data/Makefile.am
@@ -13,6 +13,7 @@ predir = $(gdmconfdir)/PreSession +++ b/data/Makefile.am
@@ -12,6 +12,7 @@ predir = $(gdmconfdir)/PreSession
postlogindir = $(gdmconfdir)/PostLogin postlogindir = $(gdmconfdir)/PostLogin
workingdir = $(GDM_WORKING_DIR) workingdir = $(GDM_WORKING_DIR)
xauthdir = $(GDM_XAUTH_DIR) xauthdir = $(GDM_XAUTH_DIR)
@ -713,15 +714,16 @@ diff -up gdm-2.29.92/data/Makefile.am.force-active-vt gdm-2.29.92/data/Makefile.
screenshotdir = $(GDM_SCREENSHOT_DIR) screenshotdir = $(GDM_SCREENSHOT_DIR)
cachedir = $(localstatedir)/cache/gdm cachedir = $(localstatedir)/cache/gdm
@@ -129,6 +130,7 @@ uninstall-hook: @@ -159,6 +160,7 @@ uninstall-hook:
$(DESTDIR)$(workingdir)/.gconf.mandatory \ $(DESTDIR)$(workingdir)/.config/dconf \
$(DESTDIR)$(screenshotdir) \ $(DESTDIR)$(screenshotdir) \
$(DESTDIR)$(xauthdir) - $(DESTDIR)$(xauthdir)
+ $(DESTDIR)$(xauthdir) \
+ $(DESTDIR)$(spooldir) + $(DESTDIR)$(spooldir)
install-data-hook: gdm.conf-custom Xsession Init PostSession PreSession gconf.path -rmdir \
if test '!' -d $(DESTDIR)$(gdmconfdir); then \ $(DESTDIR)$(sysconfdir)/dconf/db/gdm.d/locks \
@@ -228,6 +230,12 @@ install-data-hook: gdm.conf-custom Xsess @@ -303,6 +305,12 @@ install-data-hook: gdm.conf-custom Xsession Init PostSession PreSession gconf.pa
chown root:gdm $(DESTDIR)$(cachedir) || : ; \ chown root:gdm $(DESTDIR)$(cachedir) || : ; \
fi fi
@ -734,4 +736,6 @@ diff -up gdm-2.29.92/data/Makefile.am.force-active-vt gdm-2.29.92/data/Makefile.
$(INSTALL_DATA) $(srcdir)/gconf.path $(DESTDIR)$(workingdir)/.gconf.path $(INSTALL_DATA) $(srcdir)/gconf.path $(DESTDIR)$(workingdir)/.gconf.path
gconftool-2 --direct --config-source=xml:merged:$(DESTDIR)$(workingdir)/.gconf.mandatory --recursive-unset / gconftool-2 --direct --config-source=xml:merged:$(DESTDIR)$(workingdir)/.gconf.mandatory --recursive-unset /
gconftool-2 --direct --config-source=xml:merged:$(DESTDIR)$(workingdir)/.gconf.mandatory --load $(srcdir)/session-setup.entries gconftool-2 --direct --config-source=xml:merged:$(DESTDIR)$(workingdir)/.gconf.mandatory --load $(srcdir)/session-setup.entries
--
1.7.6.2