summaryrefslogtreecommitdiff
authorsandman <sandman>2002-10-17 00:39:31 (UTC)
committer sandman <sandman>2002-10-17 00:39:31 (UTC)
commit259d10f40405fd77ba0a8947782f716be94da3a5 (patch) (unidiff)
tree636cb3a899d27a8fe41f377fabc5bd170a74c6dc
parent5d28c61d84da1814d356540b557bbfe026da98aa (diff)
downloadopie-259d10f40405fd77ba0a8947782f716be94da3a5.zip
opie-259d10f40405fd77ba0a8947782f716be94da3a5.tar.gz
opie-259d10f40405fd77ba0a8947782f716be94da3a5.tar.bz2
- fix for bug #292 (Improper behaviour of frontlight disabling)
- fix for bug #199 (Desktop visible on resume before password dialog appears)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/desktop.cpp34
-rw-r--r--library/password.cpp24
-rw-r--r--library/password.h1
3 files changed, 46 insertions, 13 deletions
diff --git a/core/launcher/desktop.cpp b/core/launcher/desktop.cpp
index 0e60839..d74b745 100644
--- a/core/launcher/desktop.cpp
+++ b/core/launcher/desktop.cpp
@@ -182,5 +182,5 @@ public:
182 } 182 }
183 183
184 setBacklight ( -3 ); 184 setBacklight ( -1 );
185 } 185 }
186 bool save( int level ) 186 bool save( int level )
@@ -333,10 +333,12 @@ void DesktopApplication::switchLCD ( bool on )
333 333
334 if ( dapp-> m_screensaver ) { 334 if ( dapp-> m_screensaver ) {
335 if ( on ) 335 if ( on ) {
336 dapp-> m_screensaver-> restore ( ); //setBacklight ( on ? -3 : -1 ); 336 dapp-> m_screensaver-> setDisplayState ( true );
337 else 337 dapp-> m_screensaver-> setBacklight ( -3 );
338 dapp-> m_screensaver-> save ( 1 ); 338 }
339 339 else {
340 } 340 dapp-> m_screensaver-> setDisplayState ( false );
341 }
342 }
341 } 343 }
342} 344}
@@ -863,5 +865,5 @@ void Desktop::togglePower()
863 865
864 if ( excllock ) 866 if ( excllock )
865 return ; 867 return;
866 868
867 excllock = true; 869 excllock = true;
@@ -871,8 +873,18 @@ void Desktop::togglePower()
871 suspendTime = QDateTime::currentDateTime(); 873 suspendTime = QDateTime::currentDateTime();
872 874
873 ODevice::inst ( ) -> suspend ( ); 875#ifdef QWS
876 if ( Password::needToAuthenticate ( true ) && qt_screen ) {
877 // Should use a big black window instead.
878 // But this would not show up fast enough
879 QGfx *g = qt_screen-> screenGfx ( );
880 g-> fillRect ( 0, 0, qt_screen-> width ( ), qt_screen-> height ( ));
881 delete g;
882 }
883#endif
884
885 ODevice::inst ( )-> suspend ( );
874 886
875 QWSServer::screenSaverActivate ( false );
876 DesktopApplication::switchLCD ( true ); // force LCD on without slow qcop call 887 DesktopApplication::switchLCD ( true ); // force LCD on without slow qcop call
888 QWSServer::screenSaverActivate ( false );
877 889
878 { 890 {
@@ -881,5 +893,5 @@ void Desktop::togglePower()
881 893
882 if ( wasloggedin ) 894 if ( wasloggedin )
883 login( TRUE ); 895 login ( true );
884 896
885 execAutoStart(); 897 execAutoStart();
diff --git a/library/password.cpp b/library/password.cpp
index 4b22b65..6d126c4 100644
--- a/library/password.cpp
+++ b/library/password.cpp
@@ -28,5 +28,5 @@
28#include <qapplication.h> 28#include <qapplication.h>
29#include <qfile.h> 29#include <qfile.h>
30#include <qwindowsystem_qws.h> 30//#include <qwindowsystem_qws.h>
31 31
32#include <qdialog.h> 32#include <qdialog.h>
@@ -286,4 +286,23 @@ QString Password::getPassword( const QString& prompt )
286 286
287/*! 287/*!
288 Return if a prompt for the user's passcode is needed.
289
290 If \a at_poweron is TRUE, the dialog is only used if the user's
291 preference request it at poweron
292
293 Opie extension to speed up suspend/resume.
294*/
295
296bool Password::needToAuthenticate(bool at_poweron)
297{
298 Config cfg("Security");
299 cfg.setGroup("Passcode");
300 QString passcode = cfg.readEntry("passcode");
301
302 return ( !passcode.isEmpty()
303 && (!at_poweron || cfg.readNumEntry("passcode_poweron",0)) );
304}
305
306/*!
288 Prompt, fullscreen, for the user's passcode until they get it right. 307 Prompt, fullscreen, for the user's passcode until they get it right.
289 308
@@ -325,5 +344,6 @@ void Password::authenticate(bool at_poweron)
325 } else if ( at_poweron ) { 344 } else if ( at_poweron ) {
326 // refresh screen #### should probably be in caller 345 // refresh screen #### should probably be in caller
327 // Not needed (we took away the screen blacking) 346 // Not needed (we took away the screen blacking) TT
347 // Not needed (we have intelligent screen blacking) sandman
328 //if ( qwsServer ) 348 //if ( qwsServer )
329 //qwsServer->refresh(); 349 //qwsServer->refresh();
diff --git a/library/password.h b/library/password.h
index a3a3e45..a2f2c3c 100644
--- a/library/password.h
+++ b/library/password.h
@@ -26,4 +26,5 @@ class Password
26{ 26{
27public: 27public:
28 static bool needToAuthenticate(bool atpoweron=FALSE); // Opie extension to speed up suspend/resume (sandman)
28 static void authenticate(bool atpoweron=FALSE); 29 static void authenticate(bool atpoweron=FALSE);
29 static QString getPassword( const QString& prompt ); 30 static QString getPassword( const QString& prompt );