rpms/kdebase-workspace/F-12 kdebase-workspace-4.3.3-kdm_plymouth.patch, 1.1, 1.2
Rex Dieter
rdieter at fedoraproject.org
Wed Dec 2 14:33:27 UTC 2009
Author: rdieter
Update of /cvs/pkgs/rpms/kdebase-workspace/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv19403
Modified Files:
kdebase-workspace-4.3.3-kdm_plymouth.patch
Log Message:
adapt/borrow more code from gdm-2.26.0-force-active-vt.patch
kdebase-workspace-4.3.3-kdm_plymouth.patch:
dm.c | 34 +++++++++++++++++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)
Index: kdebase-workspace-4.3.3-kdm_plymouth.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kdebase-workspace/F-12/kdebase-workspace-4.3.3-kdm_plymouth.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- kdebase-workspace-4.3.3-kdm_plymouth.patch 1 Dec 2009 18:48:13 -0000 1.1
+++ kdebase-workspace-4.3.3-kdm_plymouth.patch 2 Dec 2009 14:33:27 -0000 1.2
@@ -1,13 +1,51 @@
-diff -up kdebase-workspace-4.3.3/kdm/backend/dm.c.plymouth kdebase-workspace-4.3.3/kdm/backend/dm.c
---- kdebase-workspace-4.3.3/kdm/backend/dm.c.plymouth 2008-07-21 19:03:20.000000000 -0500
-+++ kdebase-workspace-4.3.3/kdm/backend/dm.c 2009-12-01 12:26:16.435483131 -0600
-@@ -1356,6 +1356,9 @@ allocateVT( struct display *d )
- }
- }
- }
-+ /* if using plymouth, force use of specified vt. TODO: query/use activevt */
-+ if ((open( "/var/spool/gdm/force-display-on-active-vt", O_RDONLY )) >= 0 )
-+ volun = False;
- if (!volun || !((1 << tvt) & getBusyVTs())) {
- d->serverVT = tvt;
- return;
+diff -up kdebase-workspace-4.3.3/kdm/backend/dm.c.kdm_plymouth kdebase-workspace-4.3.3/kdm/backend/dm.c
+--- kdebase-workspace-4.3.3/kdm/backend/dm.c.kdm_plymouth 2008-07-21 19:03:20.000000000 -0500
++++ kdebase-workspace-4.3.3/kdm/backend/dm.c 2009-12-02 08:22:48.935095381 -0600
+@@ -1315,6 +1315,34 @@ getBusyVTs( void )
+ return activeVTs;
+ }
+
++static int
++get_active_vt (void)
++{
++ int console_fd;
++ struct vt_stat console_state = { 0 };
++ console_fd = open ("/dev/tty0", O_RDONLY | O_NOCTTY);
++ if (console_fd < 0) {
++ goto out;
++ }
++ if (ioctl (console_fd, VT_GETSTATE, &console_state) < 0) {
++ goto out;
++ }
++out:
++ if (console_fd >= 0) {
++ close (console_fd);
++ }
++ return console_state.v_active;
++}
++
++static int
++triggered_to_force_display_on_active_vt (void)
++{
++ int should_force_display_on_active_vt;
++ should_force_display_on_active_vt=open("/var/spool/gdm/force-display-on-active-vt", O_RDONLY);
++ unlink("/var/spool/gdm/force-display-on-active-vt");
++ return should_force_display_on_active_vt;
++}
++
+ static void
+ allocateVT( struct display *d )
+ {
+@@ -1324,7 +1352,11 @@ allocateVT( struct display *d )
+ if ((d->displayType & d_location) == dLocal &&
+ d->status == notRunning && !d->serverVT && d->reqSrvVT >= 0)
+ {
+- if (d->reqSrvVT && d->reqSrvVT < 16)
++ if ( triggered_to_force_display_on_active_vt() >= 0 )
++ {
++ d->serverVT = get_active_vt() ;
++ }
++ else if (d->reqSrvVT && d->reqSrvVT < 16)
+ d->serverVT = d->reqSrvVT;
+ else {
+ for (i = tvt = 0;;) {
More information about the fedora-extras-commits
mailing list