diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2009-06-08 12:02:14 (GMT) |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2009-06-08 12:02:14 (GMT) |
commit | be380aff25f759d664fb0d945174e07ffa728675 (patch) | |
tree | 3fa85fd508cf29c5b8ebe6ad171d28f1e9a1a3e7 /src | |
parent | 745fb79189b57f88ec926a0b169c090cfd9b0571 (diff) | |
parent | d21b8174071c56aaf8625229e4b7f50292619868 (diff) | |
download | Qt-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.cpp | 9 |
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); |