-rw-r--r-- | core/launcher/desktop.cpp | 5 | ||||
-rw-r--r-- | core/launcher/main.cpp | 3 |
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 @@ -555,151 +555,148 @@ void Desktop::raiseEmail() // autoStarts apps on resume and start void Desktop::execAutoStart() { QString appName; int delay; QDateTime now = QDateTime::currentDateTime(); Config cfg( "autostart" ); cfg.setGroup( "AutoStart" ); appName = cfg.readEntry( "Apps", "" ); delay = ( cfg.readEntry( "Delay", "0" ) ).toInt(); // If the time between suspend and resume was longer then the // value saved as delay, start the app if ( suspendTime.secsTo( now ) >= ( delay * 60 ) && !appName.isEmpty() ) { QCopEnvelope e( "QPE/System", "execute(QString)" ); e << QString( appName ); } } #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 ) { switch ( t ) { case ShutdownImpl::ShutdownSystem: execlp("shutdown", "shutdown", "-h", "now", (void*)0); break; case ShutdownImpl::RebootSystem: execlp("shutdown", "shutdown", "-r", "now", (void*)0); break; case ShutdownImpl::RestartDesktop: restart(); break; case ShutdownImpl::TerminateDesktop: prepareForTermination(FALSE); // This is a workaround for a Qt bug // clipboard applet has to stop its poll timer, or Qt/E // will hang on quit() right before it emits aboutToQuit() 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 @@ -291,96 +291,97 @@ int initApplication( int argc, char ** argv ) setenv( "QWS_SIZE", "240x320", 0 ); #endif //Don't flicker at startup: QWSServer::setDesktopBackground( QImage() ); DesktopApplication a( argc, argv, QApplication::GuiServer ); (void) new ModelKeyFilter ( ); initBacklight(); AlarmServer::initialize(); Desktop *d = new Desktop(); QObject::connect( &a, SIGNAL(datebook()), d, SLOT(raiseDatebook()) ); 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; } |