From 1affc6720a338f59b824af1825936335e7ce1602 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 1 Dec 2011 15:01:01 +0200 Subject: 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 --- src/gui/kernel/qapplication_s60.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index ca9c3a372b..c94d66d866 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(); -- cgit v1.2.3