summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qapplication_s60.cpp
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2011-06-17 08:07:22 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2011-06-17 08:07:22 (GMT)
commitfd7ba9728a9a580fc446b71134d4c0647c235b4f (patch)
treee858c4560397844b19586e8dbebb936eebfa9a06 /src/gui/kernel/qapplication_s60.cpp
parent72bd10eed1f15d8ef3c233acb51212f18bc02f35 (diff)
parentf078275a2a4b2a279a6fcc24df3c21fe8b21f007 (diff)
downloadQt-fd7ba9728a9a580fc446b71134d4c0647c235b4f.zip
Qt-fd7ba9728a9a580fc446b71134d4c0647c235b4f.tar.gz
Qt-fd7ba9728a9a580fc446b71134d4c0647c235b4f.tar.bz2
Merge branch 'master' of git://scm.dev.nokia.troll.no/qt/qt-releng-team
* 'master' of git://scm.dev.nokia.troll.no/qt/qt-releng-team: (210 commits) QTBUG-19500 lupdate fails to run from the Mac binary package on Mac OS X 10.5 DEF file updates for Symbian QTBUG-19883 Adding top level TRAP for QThreads on Symbian Revert "QFileInfoGatherer: call QFileSystemWatcher addPaths from proper thread" Fix alignment value not handled in ODF Silence a compiler warning about unhandled enum in switch Silence the "array out of bounds" warning in GCC 4.6. Silence the callgrind warnings in our source code when using gcc 4.6 Create a function that merges the SSE common code Improve toLatin1 x86 SIMD by using a new SSE4.1 instruction Revert "Fix compilation of lrelease on Windows" QFileInfoGatherer: call QFileSystemWatcher addPaths from proper thread Also test http proxy in the QTcpServer benchmark Symbian QFileSystemWatcher: fix potential crash Enable QTcpServer benchmark on symbian Fix building the OpenVG graphicssystem on Linux with static libs fix build on windows 7 Fix compilation of lrelease on Windows Allow selecting fonts with irregular style names Fix missing empty lines in Qt HTML when displayed in compliant browsers ...
Diffstat (limited to 'src/gui/kernel/qapplication_s60.cpp')
-rw-r--r--src/gui/kernel/qapplication_s60.cpp34
1 files changed, 14 insertions, 20 deletions
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index e9d58c7..31d02d4 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -74,6 +74,7 @@
# include <centralrepository.h>
# include "qs60mainappui.h"
# include "qinputcontext.h"
+# include <private/qgraphicssystemex_symbian_p.h>
#endif
#if defined(Q_WS_S60)
@@ -1694,7 +1695,7 @@ void qt_init(QApplicationPrivate * /* priv */, int)
if (commandLine) {
// After this construction, CEikonEnv will be available from CEikonEnv::Static().
// (much like our qApp).
- QtEikonEnv* coe = new QtEikonEnv;
+ CEikonEnv* coe = new CEikonEnv;
//not using QT_TRAP_THROWING, because coe owns the cleanupstack so it can't be pushed there.
TRAPD(err, coe->ConstructAppFromCommandLineL(factory, *commandLine));
if(err != KErrNone) {
@@ -1850,26 +1851,12 @@ void qt_init(QApplicationPrivate * /* priv */, int)
#ifdef Q_SYMBIAN_SEMITRANSPARENT_BG_SURFACE
QApplicationPrivate::instance()->useTranslucentEGLSurfaces = true;
- const TUid KIvePropertyCat = {0x2726beef};
- enum TIvePropertyChipType {
- EVCBCM2727B1 = 0x00000000,
- EVCBCM2763A0 = 0x04000100,
- EVCBCM2763B0 = 0x04000102,
- EVCBCM2763C0 = 0x04000103,
- EVCBCM2763C1 = 0x04000104,
- EVCBCMUnknown = 0x7fffffff
- };
-
- TInt chipType = EVCBCMUnknown;
- if (RProperty::Get(KIvePropertyCat, 0 /*chip type*/, chipType) == KErrNone) {
- if (chipType == EVCBCM2727B1) {
- // We have only 32MB GPU memory. Use raster surfaces
- // for transparent TLWs.
- QApplicationPrivate::instance()->useTranslucentEGLSurfaces = false;
- }
- } else {
+ if (QSymbianGraphicsSystemEx::hasBCM2727()) {
+ // We have only 32MB GPU memory. Use raster surfaces
+ // for transparent TLWs.
QApplicationPrivate::instance()->useTranslucentEGLSurfaces = false;
}
+
if (QApplicationPrivate::graphics_system_name == QLatin1String("raster"))
QApplicationPrivate::instance()->useTranslucentEGLSurfaces = false;
#else
@@ -2027,7 +2014,7 @@ void QApplicationPrivate::openPopup(QWidget *popup)
QApplicationPrivate::popupWidgets->append(popup);
// Cancel focus widget pointer capture and long tap timer
- if (QApplication::focusWidget()) {
+ if (QApplication::focusWidget() && QApplication::focusWidget()->effectiveWinId()) {
static_cast<QSymbianControl*>(QApplication::focusWidget()->effectiveWinId())->CancelLongTapTimer();
QApplication::focusWidget()->effectiveWinId()->SetPointerCapture(false);
}
@@ -2278,6 +2265,7 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent
#if defined(Q_SYMBIAN_SUPPORTS_MULTIPLE_SCREENS)
case EEventDisplayChanged:
#endif
+ {
if (callSymbianEventFilters(symbianEvent))
return 1;
if (S60)
@@ -2289,6 +2277,12 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent
QResizeEvent e(qt_desktopWidget->size(), oldSize);
QApplication::sendEvent(qt_desktopWidget, &e);
}
+ // Close non-native QMenus (that should act like context menus, i.e. close
+ // automatically when the orientation changes).
+ QMenu *activeMenu = qobject_cast<QMenu *>(QApplication::activePopupWidget());
+ if (activeMenu)
+ activeMenu->close();
+ }
return 0; // Propagate to CONE
case EEventWindowVisibilityChanged:
if (controlInMap) {