summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2011-12-01 13:01:01 (GMT)
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2011-12-01 13:18:48 (GMT)
commit1affc6720a338f59b824af1825936335e7ce1602 (patch)
tree59047e95965db55fcbe15391a127f2cc36518662 /src/gui/kernel
parentd2a3b9ee8c9329cac96b5e509df0e6a69dbef91c (diff)
downloadQt-1affc6720a338f59b824af1825936335e7ce1602.zip
Qt-1affc6720a338f59b824af1825936335e7ce1602.tar.gz
Qt-1affc6720a338f59b824af1825936335e7ce1602.tar.bz2
Symbian: Fix CBA display on application with multiple windows
If an application has more than one window and each window has widgets that can receive focus, sometimes a situation happened when the last focused window isn't actually the window that contains the current focused widget, which led to displaying incorrect CBA. Changed CBA displaying evaluation to be done whenever any control is focused instead of just windows. This can add a couple of extra S60->setRecursiveDecorationsVisibility() calls to some applications, but since that is typically already called multiple times anyway, it shouldn't be an issue. Task-number: ou1cimx1#935663 Reviewed-by: Sami Merila
Diffstat (limited to 'src/gui/kernel')
-rw-r--r--src/gui/kernel/qapplication_s60.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index ca9c3a3..c94d66d 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -1548,6 +1548,7 @@ void QSymbianControl::FocusChanged(TDrawNow /* aDrawNow */)
|| (qwidget->windowType() & Qt::Popup) == Qt::Popup)
return;
+ QWidget *parentWindow = qwidget->window();
if (IsFocused() && IsVisible()) {
if (m_symbianPopupIsOpen) {
QWidget *fw = QApplication::focusWidget();
@@ -1562,11 +1563,10 @@ void QSymbianControl::FocusChanged(TDrawNow /* aDrawNow */)
qwidget->d_func()->setWindowIcon_sys(true);
qwidget->d_func()->setWindowTitle_sys(qwidget->windowTitle());
#ifdef Q_WS_S60
- if (qwidget->isWindow())
- S60->setRecursiveDecorationsVisibility(qwidget, qwidget->windowState());
+ if (parentWindow->isWindow())
+ S60->setRecursiveDecorationsVisibility(parentWindow, parentWindow->windowState());
#endif
} else {
- QWidget *parentWindow = qwidget->window();
if (QApplication::activeWindow() == parentWindow && !hasFocusedAndVisibleChild(parentWindow)) {
if (CCoeEnv::Static()->AppUi()->IsDisplayingMenuOrDialog() || S60->menuBeingConstructed) {
QWidget *fw = QApplication::focusWidget();