From 4db3abc59c27022211222187a48eb649460c5432 Mon Sep 17 00:00:00 2001 From: llornkcor Date: Wed, 17 Apr 2002 03:20:37 +0000 Subject: LCD off(only) on suspend patch --- (limited to 'library') diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index c154689..ba9db71 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp @@ -328,17 +328,33 @@ static bool networkOnline() class QPEScreenSaver : public QWSScreenSaver { +private: + int LcdOn; public: QPEScreenSaver() { + int fd; + + LcdOn = TRUE; + // Make sure the LCD is in fact on, (if opie was killed while the LCD is off it would still be off) + fd=open("/dev/fb0",O_RDWR); + if (fd != -1) { ioctl(fd,FBIOBLANK,VESA_NO_BLANKING); close(fd); } } void restore() { + if (!LcdOn) // We must have turned it off + { + int fd; + fd=open("/dev/fb0",O_RDWR); + if (fd != -1) { ioctl(fd,FBIOBLANK,VESA_NO_BLANKING); close(fd); } + } setBacklight(-1); } bool save(int level) { + int fd; + switch ( level ) { case 0: if ( disable_suspend > 0 && dim_on ) { @@ -354,10 +370,21 @@ public: return TRUE; break; case 2: - if ( disable_suspend > 2 && !powerOnline() && !networkOnline() ) { - QWSServer::sendKeyEvent( 0xffff, Qt::Key_F34, FALSE, TRUE, FALSE ); - return TRUE; - } + Config config( "qpe" ); + config.setGroup( "Screensaver" ); + if (config.readNumEntry("LcdOffOnly",0) != 0) // We're only turning off the LCD + { + fd=open("/dev/fb0",O_RDWR); + if (fd != -1) { ioctl(fd,FBIOBLANK,VESA_POWERDOWN); close(fd); } + LcdOn = FALSE; + } + else // We're going to suspend the whole machine + { + if ( disable_suspend > 2 && !powerOnline() && !networkOnline() ) { + QWSServer::sendKeyEvent( 0xffff, Qt::Key_F34, FALSE, TRUE, FALSE ); + return TRUE; + } + } break; } return FALSE; -- cgit v0.9.0.2