summaryrefslogtreecommitdiff
path: root/library
Side-by-side diff
Diffstat (limited to 'library') (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpeapplication.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp
index 0e469ae..28fb13a 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -51,6 +51,7 @@
#include <qsignal.h>
#include <qmainwindow.h>
#include <qwidgetlist.h>
+#include <qpixmapcache.h>
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
#define QTOPIA_INTERNAL_INITAPP
@@ -99,7 +100,7 @@ public:
QPEApplicationData ( )
: presstimer( 0 ), presswidget( 0 ), rightpressed( false ), kbgrabbed( false ),
notbusysent( false ), preloaded( false ), forceshow( false ), nomaximize( false ),
- keep_running( true ), qpe_main_widget( 0 ), qcopQok( false )
+ keep_running( true ), qcopQok( false ), qpe_main_widget( 0 )
{}
@@ -113,8 +114,8 @@ public:
bool preloaded : 1;
bool forceshow : 1;
bool nomaximize : 1;
- bool qcopQok : 1;
bool keep_running : 1;
+ bool qcopQok : 1;
QStringList langs;
@@ -214,6 +215,7 @@ public:
setWidgetCaptionFromAppName( mw, appName, QPEApplication::qpeDir() + "apps" );
nomaximize = nomax;
qpe_main_widget = mw;
+ qcopQok = TRUE;
#ifndef QT_NO_COP
sendQCopQ();
@@ -576,6 +578,8 @@ void QPEApplication::processQCopFile()
QPEApplication::QPEApplication( int & argc, char **argv, Type t )
: QApplication( hack(argc), argv, t ), pidChannel( 0 )
{
+ QPixmapCache::setCacheLimit(256); // sensible default for smaller devices.
+
d = new QPEApplicationData;
d->loadTextCodecs();
d->loadImageCodecs();
@@ -1776,6 +1780,9 @@ void QPEApplication::setStylusOperation( QWidget * w, StylusMode mode )
*/
bool QPEApplication::eventFilter( QObject *o, QEvent *e )
{
+ if ( !o->isWidgetType() )
+ return FALSE;
+
if ( stylusDict && e->type() >= QEvent::MouseButtonPress && e->type() <= QEvent::MouseMove ) {
QMouseEvent * me = ( QMouseEvent* ) e;
StylusMode mode = (StylusMode)(int)stylusDict->find(o);
@@ -1784,7 +1791,8 @@ bool QPEApplication::eventFilter( QObject *o, QEvent *e )
switch ( me->type() ) {
case QEvent::MouseButtonPress:
if ( me->button() == LeftButton ) {
- d->presstimer = startTimer(500); // #### pref.
+ if (!d->presstimer )
+ d->presstimer = startTimer(500); // #### pref.
d->presswidget = (QWidget*)o;
d->presspos = me->pos();
d->rightpressed = FALSE;
@@ -1904,6 +1912,8 @@ int QPEApplication::exec()
d->qcopQok = true;
#ifndef QT_NO_COP
d->sendQCopQ();
+ if ( !d->keep_running )
+ processEvents(); // we may have received QCop messages in the meantime.
#endif
if ( d->keep_running )