diff options
author | Alan Alpert <alan.alpert@nokia.com> | 2012-03-12 18:48:05 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-15 10:14:37 +0100 |
commit | 67f589209dc856be3ac6261f51023125343812ce (patch) | |
tree | 2bff3a1e9510ff2a9ea707f0dfe93ceee77f5c74 /src/quick/items | |
parent | 1c7b0362b8a1d230e52b7ee5df2aa36a3217b79b (diff) |
Don't assert if focus is already clear.
Already cleared focus should exit the function without terminating the
runtime.
Task-number: QTBUG-24714
Change-Id: Ia8c6be0d88e43d1f71112acc7bac3eb674f22de8
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/quick/items')
-rw-r--r-- | src/quick/items/qquickcanvas.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/quick/items/qquickcanvas.cpp b/src/quick/items/qquickcanvas.cpp index 26360229e9..a6c2a90407 100644 --- a/src/quick/items/qquickcanvas.cpp +++ b/src/quick/items/qquickcanvas.cpp @@ -607,7 +607,6 @@ void QQuickCanvasPrivate::clearFocusInScope(QQuickItem *scope, QQuickItem *item, { Q_Q(QQuickCanvas); - Q_UNUSED(item); Q_ASSERT(item); Q_ASSERT(scope || item == rootItem); @@ -618,7 +617,12 @@ void QQuickCanvasPrivate::clearFocusInScope(QQuickItem *scope, QQuickItem *item, qWarning() << " activeFocusItem:" << (QObject *)activeFocusItem; #endif - QQuickItemPrivate *scopePrivate = scope ? QQuickItemPrivate::get(scope) : 0; + QQuickItemPrivate *scopePrivate = 0; + if (scope) { + scopePrivate = QQuickItemPrivate::get(scope); + if ( !scopePrivate->subFocusItem ) + return;//No focus, nothing to do. + } QQuickItem *oldActiveFocusItem = 0; QQuickItem *newActiveFocusItem = 0; |