Index: shared/VTsw_usl.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/os-support/shared/VTsw_usl.c,v retrieving revision 1.5 diff -u -r1.5 VTsw_usl.c --- shared/VTsw_usl.c 3 Jul 2005 07:01:35 -0000 1.5 +++ shared/VTsw_usl.c 29 Jun 2006 09:33:05 -0000 @@ -64,15 +64,15 @@ xf86VTSwitchAway() { xf86Info.vtRequestsPending = FALSE; +#ifdef OSSWITCHAWAY + OSSWITCHAWAY; +#endif if (ioctl(xf86Info.consoleFd, VT_RELDISP, 1) < 0) { return(FALSE); } else { -#ifdef OSSWITCHAWAY - OSSWITCHAWAY; -#endif return(TRUE); } } --- linux/lnx_init.c.orig 2007-08-23 21:04:53.000000000 +0200 +++ linux/lnx_init.c 2007-09-29 16:19:53.771798500 +0200 @@ -240,9 +240,6 @@ if (!ShareVTs) { -#if defined(DO_OS_FONTRESTORE) - lnx_savefont(); -#endif /* * now get the VT. This _must_ succeed, or else fail completely. */ @@ -254,6 +251,10 @@ FatalError("xf86OpenConsole: VT_WAITACTIVE failed: %s\n", strerror(errno)); +#if defined(DO_OS_FONTRESTORE) + lnx_savefont(); +#endif + if (ioctl(xf86Info.consoleFd, VT_GETMODE, &VT) < 0) FatalError("xf86OpenConsole: VT_GETMODE failed %s\n", strerror(errno)); @@ -342,6 +343,11 @@ if (VTSwitch) { +#if defined(DO_OS_FONTRESTORE) + if (xf86Info.vtno == vtno) /* check if we are active */ + lnx_restorefont(); + lnx_freefontdata(); +#endif /* * Perform a switch back to the active VT when we were started */ @@ -356,11 +362,6 @@ activeVT = -1; } -#if defined(DO_OS_FONTRESTORE) - if (xf86Info.vtno == vtno) /* check if we are active */ - lnx_restorefont(); - lnx_freefontdata(); -#endif } close(xf86Info.consoleFd); /* make the vt-manager happy */