author | sandman <sandman> | 2002-08-06 21:46:30 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-08-06 21:46:30 (UTC) |
commit | 2ac1e6ec5a97d3721a3d6513ea68e4e21da1d40b (patch) (unidiff) | |
tree | ad84f4e405da51a6ca14ab4dd33bfd7c9f2a411e /core/launcher/desktop.cpp | |
parent | 8084d002de5e310491eec7fac0713ef29d0cf30f (diff) | |
download | opie-2ac1e6ec5a97d3721a3d6513ea68e4e21da1d40b.zip opie-2ac1e6ec5a97d3721a3d6513ea68e4e21da1d40b.tar.gz opie-2ac1e6ec5a97d3721a3d6513ea68e4e21da1d40b.tar.bz2 |
- Fix for the "iPAQ won't suspend until apm --suspend is called" problem
- Improved the resume delay until the LCD backlight is on again
-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 | |||
@@ -601,34 +601,38 @@ static void darkScreen() | |||
601 | qpe_setBacklight(0); // force off | 601 | qpe_setBacklight(0); // force off |
602 | } | 602 | } |
603 | 603 | ||
604 | 604 | ||
605 | void Desktop::togglePower() | 605 | void Desktop::togglePower() |
606 | { | 606 | { |
607 | extern void qpe_setBacklight ( int ); // We need to toggle the LCD fast - no time to send a QCop | ||
608 | |||
607 | static bool excllock = false; | 609 | static bool excllock = false; |
608 | 610 | ||
609 | if ( excllock ) | 611 | if ( excllock ) |
610 | return; | 612 | return; |
611 | 613 | ||
612 | excllock = true; | 614 | excllock = true; |
613 | 615 | ||
614 | bool wasloggedin = loggedin; | 616 | bool wasloggedin = loggedin; |
615 | loggedin=0; | 617 | loggedin=0; |
616 | suspendTime = QDateTime::currentDateTime(); | 618 | suspendTime = QDateTime::currentDateTime(); |
617 | darkScreen(); | 619 | |
620 | qpe_setBacklight ( 0 ); // force LCD off | ||
621 | |||
618 | if ( wasloggedin ) | 622 | if ( wasloggedin ) |
619 | blankScreen(); | 623 | blankScreen(); |
620 | 624 | ||
621 | ODevice::inst ( )-> suspend ( ); | 625 | ODevice::inst ( )-> suspend ( ); |
622 | 626 | ||
623 | QWSServer::screenSaverActivate( FALSE ); | 627 | QWSServer::screenSaverActivate ( false ); |
628 | |||
629 | qpe_setBacklight ( -3 ); // force LCD on | ||
624 | 630 | ||
625 | { | 631 | { |
626 | QCopEnvelope("QPE/Card", "mtabChanged()" ); // might have changed while asleep | 632 | QCopEnvelope("QPE/Card", "mtabChanged()" ); // might have changed while asleep |
627 | QCopEnvelope e("QPE/System", "setBacklight(int)"); | ||
628 | e << -3; // Force on | ||
629 | } | 633 | } |
630 | 634 | ||
631 | if ( wasloggedin ) | 635 | if ( wasloggedin ) |
632 | login(TRUE); | 636 | login(TRUE); |
633 | 637 | ||
634 | execAutoStart(); | 638 | execAutoStart(); |