summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2004-04-26 06:42:17 (UTC)
committer llornkcor <llornkcor>2004-04-26 06:42:17 (UTC)
commit4f6f06bab5c52c645ac33bdf77d4ed462b7c6a96 (patch) (side-by-side diff)
treec1c6adc8c197ea923b1cb8c784f5968ca5fe906b
parent0e3e74030b2a38cfc754d253ab098a1126f382ef (diff)
downloadopie-4f6f06bab5c52c645ac33bdf77d4ed462b7c6a96.zip
opie-4f6f06bab5c52c645ac33bdf77d4ed462b7c6a96.tar.gz
opie-4f6f06bab5c52c645ac33bdf77d4ed462b7c6a96.tar.bz2
make shutdown app move to more proper position so it doesn't cut off the titlebar
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/serverapp.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/core/launcher/serverapp.cpp b/core/launcher/serverapp.cpp
index cf543ce..807942d 100644
--- a/core/launcher/serverapp.cpp
+++ b/core/launcher/serverapp.cpp
@@ -644,128 +644,130 @@ bool ServerApplication::qwsEventFilter( QWSEvent *e )
if ( e->type == QWSEvent::Mouse ) {
QWSMouseEvent *me = (QWSMouseEvent *)e;
static bool up = TRUE;
if ( me->simpleData.state&LeftButton ) {
if ( up ) {
up = FALSE;
screenClick(TRUE);
}
} else if ( !up ) {
up = TRUE;
screenClick(FALSE);
}
}else if ( e->type == QWSEvent::Key ) {
QWSKeyEvent * ke = static_cast<QWSKeyEvent*>( e );
if ( kf->checkButtonAction( false,
ke-> simpleData.keycode,
ke-> simpleData.is_press,
ke-> simpleData.is_auto_repeat ) )
return true;
}
return QPEApplication::qwsEventFilter( e );
}
#endif
/* ### FIXME libqtopia Plugin Safe Mode */
void ServerApplication::showSafeMode()
{
#if 0
if ( QMessageBox::warning(0, tr("Safe Mode"), tr("<P>A system startup error occurred, "
"and the system is now in Safe Mode. "
"Plugins are not loaded in Safe Mode. "
"You can use the Plugin Manager to "
"disable plugins that cause system error."), tr("OK"), tr("Plugin Manager..."), 0) == 1 ) {
Global::execute( "pluginmanager" );
}
#endif
}
void ServerApplication::clearSafeMode()
{
#if 0
// If we've been running OK for a while then we won't bother going into
// safe mode immediately on the next crash.
Config cfg( "PluginLoader" );
cfg.setGroup( "Global" );
QString mode = cfg.readEntry( "Mode", "Normal" );
if ( mode == "MaybeSafe" ) {
cfg.writeEntry( "Mode", "Normal" );
}
#endif
}
void ServerApplication::shutdown()
{
if ( type() != GuiServer )
return;
ShutdownImpl *sd = new ShutdownImpl( 0, 0, WDestructiveClose );
connect( sd, SIGNAL(shutdown(ShutdownImpl::Type)),
this, SLOT(shutdown(ShutdownImpl::Type)) );
QPEApplication::showWidget( sd );
+ sd->move(0,0);
+
}
void ServerApplication::shutdown( ShutdownImpl::Type t )
{
char *opt = 0;
switch ( t ) {
case ShutdownImpl::ShutdownSystem:
opt = "-h";
// fall through
case ShutdownImpl::RebootSystem:
if ( opt == 0 )
opt = "-r";
if ( execl( "/sbin/shutdown", "shutdown", opt, "now", ( void* ) 0) < 0 )
perror("shutdown");
// ::syslog ( LOG_ERR, "Erroring execing shutdown\n" );
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()
emit aboutToQuit ( );
quit();
break;
}
}
void ServerApplication::restart()
{
if ( allowRestart ) {
/*
* Applets and restart is a problem. Some applets delete
* their widgets even if ownership gets transfered to the
* parent (Systray ) but deleting the applet may be unsafe
* as well ( double deletion ). Some have topLevel widgets
* and when we dlclose and then delete the widget we will
* crash and an crash during restart is not nice
*/
#ifdef ALL_APPLETS_ON_THIS_WORLD_ARE_FIXED
/* same as above */
emit aboutToQuit();
prepareForTermination(TRUE);
doRestart = TRUE;
quit();
#else
prepareForTermination( true );
for ( int fd = 3; fd < 100; fd++ )
close( fd );
execl( ( qpeDir() + "/bin/qpe" ).latin1(), "qpe", 0 );
exit( 1 );
#endif
}
}
void ServerApplication::rereadVolumes()