summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2009-06-08 12:02:14 (GMT)
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2009-06-08 12:02:14 (GMT)
commitbe380aff25f759d664fb0d945174e07ffa728675 (patch)
tree3fa85fd508cf29c5b8ebe6ad171d28f1e9a1a3e7 /src
parent745fb79189b57f88ec926a0b169c090cfd9b0571 (diff)
parentd21b8174071c56aaf8625229e4b7f50292619868 (diff)
downloadQt-be380aff25f759d664fb0d945174e07ffa728675.zip
Qt-be380aff25f759d664fb0d945174e07ffa728675.tar.gz
Qt-be380aff25f759d664fb0d945174e07ffa728675.tar.bz2
Merge branch 'master' of git@scm.dev.troll.no:qt/qt-s60-public
Diffstat (limited to 'src')
-rw-r--r--src/gui/kernel/qwidget_s60.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp
index 11cb974..e32e272 100644
--- a/src/gui/kernel/qwidget_s60.cpp
+++ b/src/gui/kernel/qwidget_s60.cpp
@@ -319,7 +319,8 @@ void QWidgetPrivate::hide_sys()
deactivateWidgetCleanup();
WId id = q->internalWinId();
if (q->isWindow() && id) {
- id->SetFocus(false);
+ if(id->IsFocused()) // Avoid unnecessry calls to FocusChanged()
+ id->SetFocus(false);
id->MakeVisible(false);
id->ControlEnv()->AppUi()->RemoveFromStack(id);
if (QWidgetBackingStore *bs = maybeBackingStore())
@@ -335,7 +336,8 @@ void QWidgetPrivate::setFocus_sys()
{
Q_Q(QWidget);
if (q->testAttribute(Qt::WA_WState_Created) && q->window()->windowType() != Qt::Popup)
- q->effectiveWinId()->SetFocus(true);
+ if(!q->effectiveWinId()->IsFocused()) // Avoid unnecessry calls to FocusChanged()
+ q->effectiveWinId()->SetFocus(true);
}
void QWidgetPrivate::raise_sys()
@@ -922,7 +924,8 @@ void QWidget::destroy(bool destroyWindow, bool destroySubWindows)
releaseKeyboard();
if (destroyWindow && !(windowType() == Qt::Desktop) && internalWinId()) {
WId id = internalWinId();
- id->SetFocus(false);
+ if(id->IsFocused()) // Avoid unnecessry calls to FocusChanged()
+ id->SetFocus(false);
id->ControlEnv()->AppUi()->RemoveFromStack(id);
CBase::Delete(id);