summaryrefslogtreecommitdiff
authorsandman <sandman>2002-08-28 23:01:58 (UTC)
committer sandman <sandman>2002-08-28 23:01:58 (UTC)
commit42e4592219600d6919c93dec82635e2b64382b37 (patch) (side-by-side diff)
tree1201ccb206b2b4176c0886a85093e6ff40cc3cbf
parentc46685713eb4ef4bfd0a9dcb7eb53b883704a759 (diff)
downloadopie-42e4592219600d6919c93dec82635e2b64382b37.zip
opie-42e4592219600d6919c93dec82635e2b64382b37.tar.gz
opie-42e4592219600d6919c93dec82635e2b64382b37.tar.bz2
- speedup for suspend: don't switch off backlight
- don't call processEvents on resume since it is not really needed anymore
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/desktop.cpp5
-rw-r--r--core/launcher/main.cpp3
2 files changed, 3 insertions, 5 deletions
diff --git a/core/launcher/desktop.cpp b/core/launcher/desktop.cpp
index fb10602..1ec477c 100644
--- a/core/launcher/desktop.cpp
+++ b/core/launcher/desktop.cpp
@@ -571,119 +571,116 @@ void Desktop::execAutoStart() {
#if defined(QPE_HAVE_TOGGLELIGHT)
#include <qpe/config.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <linux/ioctl.h>
#include <time.h>
#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();
- qpe_setBacklight ( 0 ); // force LCD off
+// qpe_setBacklight ( 0 ); // force LCD off (sandman: why ????)
if ( wasloggedin )
blankScreen();
ODevice::inst ( )-> suspend ( );
QWSServer::screenSaverActivate ( false );
qpe_setBacklight ( -3 ); // force LCD on
{
QCopEnvelope("QPE/Card", "mtabChanged()" ); // might have changed while asleep
}
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();
}
void Desktop::toggleNumLockState()
{
tb->toggleNumLockState();
}
void Desktop::toggleCapsLockState()
{
tb->toggleCapsLockState();
}
void Desktop::styleChange( QStyle &s )
{
QWidget::styleChange( s );
int displayw = qApp->desktop()->width();
int displayh = qApp->desktop()->height();
QSize sz = tb->sizeHint();
tb->setGeometry( 0, displayh-sz.height(), displayw, sz.height() );
}
void DesktopApplication::shutdown()
{
if ( type() != GuiServer )
return;
ShutdownImpl *sd = new ShutdownImpl( 0, 0, WDestructiveClose );
connect( sd, SIGNAL(shutdown(ShutdownImpl::Type)),
this, SLOT(shutdown(ShutdownImpl::Type)) );
sd->showMaximized();
}
void DesktopApplication::shutdown( ShutdownImpl::Type t )
{
diff --git a/core/launcher/main.cpp b/core/launcher/main.cpp
index 3ee5e26..5cf624b 100644
--- a/core/launcher/main.cpp
+++ b/core/launcher/main.cpp
@@ -307,80 +307,81 @@ int initApplication( int argc, char ** argv )
QObject::connect( &a, SIGNAL(contacts()), d, SLOT(raiseContacts()) );
QObject::connect( &a, SIGNAL(launch()), d, SLOT(raiseLauncher()) );
QObject::connect( &a, SIGNAL(email()), d, SLOT(raiseEmail()) );
QObject::connect( &a, SIGNAL(power()), d, SLOT(togglePower()) );
QObject::connect( &a, SIGNAL(backlight()), d, SLOT(toggleLight()) );
QObject::connect( &a, SIGNAL(symbol()), d, SLOT(toggleSymbolInput()) );
QObject::connect( &a, SIGNAL(numLockStateToggle()), d, SLOT(toggleNumLockState()) );
QObject::connect( &a, SIGNAL(capsLockStateToggle()), d, SLOT(toggleCapsLockState()) );
QObject::connect( &a, SIGNAL(prepareForRestart()), d, SLOT(terminateServers()) );
(void)new SysFileMonitor(d);
Network::createServer(d);
#if defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX)
if ( !QFile::exists( "/etc/pointercal" ) ) {
// Make sure calibration widget starts on top.
Calibrate *cal = new Calibrate;
cal->exec();
delete cal;
}
#endif
d->show();
int rv = a.exec();
delete d;
return rv;
}
static const char *pidfile_path = "/var/run/opie.pid";
void create_pidfile ( )
{
FILE *f;
if (( f = ::fopen ( pidfile_path, "w" ))) {
::fprintf ( f, "%d", getpid ( ));
::fclose ( f );
}
}
void remove_pidfile ( )
{
::unlink ( pidfile_path );
}
-void handle_sigterm ( int sig )
+void handle_sigterm ( int /* sig */ )
{
if ( qApp )
qApp-> quit ( );
}
int main( int argc, char ** argv )
{
#ifndef SINGLE_APP
::signal( SIGCHLD, SIG_IGN );
::signal ( SIGTERM, handle_sigterm );
+ ::signal ( SIGINT, handle_sigterm );
::setsid ( );
::setpgid ( 0, 0 );
::atexit ( remove_pidfile );
create_pidfile ( );
#endif
int retVal = initApplication ( argc, argv );
#ifndef SINGLE_APP
// Kill them. Kill them all.
::kill ( 0, SIGTERM );
::sleep( 1 );
::kill ( 0, SIGKILL );
#endif
return retVal;
}