diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c index 204bd9360..ff907a269 100644 --- a/hw/xfree86/common/xf86Events.c +++ b/hw/xfree86/common/xf86Events.c @@ -49,7 +49,7 @@ */ /* $XConsortium: xf86Events.c /main/46 1996/10/25 11:36:30 kaleb $ */ -/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/xf86Events.c,v 1.2 2004/04/23 19:20:32 eich Exp $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/xf86Events.c,v 1.3 2004/07/30 20:56:53 eich Exp $ */ /* [JCH-96/01/21] Extended std reverse map to four buttons. */ @@ -1333,6 +1333,10 @@ xf86VTSwitch() #ifdef DEBUG ErrorF("xf86VTSwitch: Leaving, xf86Exiting is %s\n", BOOLTOSTRING((dispatchException & DE_TERMINATE) ? TRUE : FALSE)); +#endif +#ifdef DPMSExtension + if (DPMSPowerLevel != DPMSModeOn) + DPMSSet(DPMSModeOn); #endif for (i = 0; i < xf86NumScreens; i++) { if (!(dispatchException & DE_TERMINATE)) @@ -1353,13 +1357,9 @@ xf86VTSwitch() } #endif /* !__UNIXOS2__ */ xf86EnterServerState(SETUP); - for (i = 0; i < xf86NumScreens; i++) { -#ifdef DPMSExtension - if (xf86Screens[i]->DPMSSet) - xf86Screens[i]->DPMSSet(xf86Screens[i],DPMSModeOn,0); -#endif + for (i = 0; i < xf86NumScreens; i++) xf86Screens[i]->LeaveVT(i, 0); - } + for (ih = InputHandlers; ih; ih = ih->next) xf86DisableInputHandler(ih); xf86AccessLeave(); /* We need this here, otherwise */ diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index 3aaac93d4..d9d55a4fe 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -96,6 +96,7 @@ extern int xtest_command_key; #ifdef DPMSExtension #define DPMS_SERVER #include "extensions/dpms.h" +#include "dpmsproc.h" #endif @@ -1253,6 +1254,10 @@ AbortDDX() #ifdef HAS_USL_VTS /* Need the sleep when starting X from within another X session */ sleep(1); +#endif +#ifdef DPMSExtension /* Turn screens back on */ + if (DPMSPowerLevel != DPMSModeOn) + DPMSSet(DPMSModeOn); #endif if (xf86Screens) { if (xf86Screens[0]->vtSema) @@ -1265,10 +1270,6 @@ AbortDDX() * screen explicitely. */ xf86EnableAccess(xf86Screens[i]); -#ifdef DPMSExtension - if (xf86Screens[i]->DPMSSet) - xf86Screens[i]->DPMSSet(xf86Screens[i],DPMSModeOn,0); -#endif (xf86Screens[i]->LeaveVT)(i, 0); } }