summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
diff options
context:
space:
mode:
authoraxis <qt-info@nokia.com>2010-03-18 07:57:42 (GMT)
committeraxis <qt-info@nokia.com>2010-03-18 07:57:42 (GMT)
commitd3cba714adb35098d515f7c4f8e90a4e38527d76 (patch)
tree60018e4f20fc6b58017081b5e9e043d36a7ee3a9 /src/gui/kernel
parent09c2a804b700ec51f44bda567b806181d00bc161 (diff)
parente483886bcfcf7252af9ac7cc89de15f912bf69da (diff)
downloadQt-d3cba714adb35098d515f7c4f8e90a4e38527d76.zip
Qt-d3cba714adb35098d515f7c4f8e90a4e38527d76.tar.gz
Qt-d3cba714adb35098d515f7c4f8e90a4e38527d76.tar.bz2
Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public into 4.7-s60
Conflicts: qmake/generators/symbian/symmake_abld.cpp
Diffstat (limited to 'src/gui/kernel')
-rw-r--r--src/gui/kernel/qapplication_s60.cpp8
-rw-r--r--src/gui/kernel/qwidget.cpp2
2 files changed, 9 insertions, 1 deletions
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index 573bac6..27b490b 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -52,6 +52,7 @@
#include "qstring.h"
#include "qdebug.h"
#include "qimage.h"
+#include "qcombobox.h"
#include "private/qkeymapper_p.h"
#include "private/qfont_p.h"
#ifndef QT_NO_STYLE_S60
@@ -1409,11 +1410,13 @@ void QApplicationPrivate::leaveModal_sys(QWidget *widget)
void QApplicationPrivate::openPopup(QWidget *popup)
{
+ if (popup && qobject_cast<QComboBox *>(popup->parentWidget()))
+ static_cast<QSymbianControl *>(popup->effectiveWinId())->FadeBehindPopup(ETrue);
+
if (!QApplicationPrivate::popupWidgets)
QApplicationPrivate::popupWidgets = new QWidgetList;
QApplicationPrivate::popupWidgets->append(popup);
-
// Cancel focus widget pointer capture and long tap timer
if (QApplication::focusWidget()) {
static_cast<QSymbianControl*>(QApplication::focusWidget()->effectiveWinId())->CancelLongTapTimer();
@@ -1452,6 +1455,9 @@ void QApplicationPrivate::openPopup(QWidget *popup)
void QApplicationPrivate::closePopup(QWidget *popup)
{
+ if (popup && qobject_cast<QComboBox *>(popup->parentWidget()))
+ static_cast<QSymbianControl *>(popup->effectiveWinId())->FadeBehindPopup(EFalse);
+
if (!QApplicationPrivate::popupWidgets)
return;
QApplicationPrivate::popupWidgets->removeAll(popup);
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index e5310ea..af5fcd1 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -6171,6 +6171,8 @@ void QWidget::setFocus(Qt::FocusReason reason)
previousProxyFocus = topData->proxyWidget->widget()->focusWidget();
if (previousProxyFocus && previousProxyFocus->focusProxy())
previousProxyFocus = previousProxyFocus->focusProxy();
+ if (previousProxyFocus == this && !topData->proxyWidget->d_func()->proxyIsGivingFocus)
+ return;
}
}
#endif