-rw-r--r-- | core/launcher/desktop.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/core/launcher/desktop.cpp b/core/launcher/desktop.cpp index 7f24259..552c7c3 100644 --- a/core/launcher/desktop.cpp +++ b/core/launcher/desktop.cpp @@ -583,70 +583,74 @@ void Desktop::execAutoStart() { #endif static bool blanked=FALSE; static void blankScreen() { if ( !qt_screen ) return; /* Should use a big black window instead. QGfx* g = qt_screen->screenGfx(); g->fillRect(0,0,qt_screen->width(),qt_screen->height()); delete g; */ blanked = TRUE; } static void darkScreen() { extern void qpe_setBacklight(int); qpe_setBacklight(0); // force off } void Desktop::togglePower() { + extern void qpe_setBacklight ( int ); // We need to toggle the LCD fast - no time to send a QCop + static bool excllock = false; if ( excllock ) return; excllock = true; bool wasloggedin = loggedin; loggedin=0; suspendTime = QDateTime::currentDateTime(); - darkScreen(); + + qpe_setBacklight ( 0 ); // force LCD off + if ( wasloggedin ) blankScreen(); ODevice::inst ( )-> suspend ( ); - QWSServer::screenSaverActivate( FALSE ); + QWSServer::screenSaverActivate ( false ); + + qpe_setBacklight ( -3 ); // force LCD on { QCopEnvelope("QPE/Card", "mtabChanged()" ); // might have changed while asleep - QCopEnvelope e("QPE/System", "setBacklight(int)"); - e << -3; // Force on } if ( wasloggedin ) login(TRUE); execAutoStart(); //qcopBridge->closeOpenConnections(); //qDebug("called togglePower()!!!!!!"); qApp-> processEvents ( ); excllock = false; } void Desktop::toggleLight() { QCopEnvelope e("QPE/System", "setBacklight(int)"); e << -2; // toggle } void Desktop::toggleSymbolInput() { tb->toggleSymbolInput(); } |