diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-03-18 12:59:59 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-03-18 12:59:59 (GMT) |
commit | f661bb26dc3b30c3d5113a56885bbe07b90fd3ce (patch) | |
tree | 4bfe6009988079c6cfcd6b8c23a1c6576dce5912 /src/gui | |
parent | 603a8501e0e203ecd6075b19be3bccb11f16ee88 (diff) | |
parent | 8ae6867b82bfdc391dab6d97945dea7c7436ef25 (diff) | |
download | Qt-f661bb26dc3b30c3d5113a56885bbe07b90fd3ce.zip Qt-f661bb26dc3b30c3d5113a56885bbe07b90fd3ce.tar.gz Qt-f661bb26dc3b30c3d5113a56885bbe07b90fd3ce.tar.bz2 |
Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public into 4.6-integration
* '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Made runonphone flush all application output.
Update configure binary after -libinfix changes for Symbian.
Build OpenVG on Symbian with QVG_RECREATE_ON_SIZE_CHANGE.
Useful support for -qtlibinfix configure parameter in Symbian
Fixed a bug where a proxy widget received FocusIn over and over.
Fixed broken test.
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/graphicsview/qgraphicsproxywidget.cpp | 5 | ||||
-rw-r--r-- | src/gui/graphicsview/qgraphicsproxywidget_p.h | 1 | ||||
-rw-r--r-- | src/gui/kernel/qwidget.cpp | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/src/gui/graphicsview/qgraphicsproxywidget.cpp b/src/gui/graphicsview/qgraphicsproxywidget.cpp index a39ccfd..483eb62 100644 --- a/src/gui/graphicsview/qgraphicsproxywidget.cpp +++ b/src/gui/graphicsview/qgraphicsproxywidget.cpp @@ -1315,6 +1315,8 @@ void QGraphicsProxyWidget::focusInEvent(QFocusEvent *event) return; } + d->proxyIsGivingFocus = true; + switch (event->reason()) { case Qt::TabFocusReason: { if (QWidget *focusChild = d->findFocusChild(0, true)) @@ -1328,10 +1330,11 @@ void QGraphicsProxyWidget::focusInEvent(QFocusEvent *event) default: if (d->widget && d->widget->focusWidget()) { d->widget->focusWidget()->setFocus(event->reason()); - return; } break; } + + d->proxyIsGivingFocus = false; } /*! diff --git a/src/gui/graphicsview/qgraphicsproxywidget_p.h b/src/gui/graphicsview/qgraphicsproxywidget_p.h index 60eb058..8aed363 100644 --- a/src/gui/graphicsview/qgraphicsproxywidget_p.h +++ b/src/gui/graphicsview/qgraphicsproxywidget_p.h @@ -118,6 +118,7 @@ public: quint32 styleChangeMode : 2; quint32 paletteChangeMode : 2; quint32 focusFromWidgetToProxy : 1; + quint32 proxyIsGivingFocus : 1; }; QT_END_NAMESPACE diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index b5ccb3e..cd943cd 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -6123,6 +6123,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 |