diff options
author | Liang Qi <liang.qi@qt.io> | 2018-10-29 08:09:46 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-10-29 08:10:45 +0100 |
commit | 2609429d7afc263ab8e44864b0f42f1c8356eda8 (patch) | |
tree | 78798b4006a7c6664bf41b44011a57110ee94acd /src/quick | |
parent | 475c74a9926efcd968572563e678988e53804603 (diff) | |
parent | 4a886753a75c7c4d66f1fa9cab5a6c5a03240df3 (diff) |
Merge remote-tracking branch 'origin/5.11' into 5.12
Conflicts:
src/imports/settings/qqmlsettings.cpp
src/quick/items/qquickwindow.cpp
tools/qmlplugindump/main.cpp
Change-Id: I96fedbc773a110374baed79a0b7de92d65df0ed6
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/accessible/qaccessiblequickitem.cpp | 10 | ||||
-rw-r--r-- | src/quick/items/qquickevents_p_p.h | 2 | ||||
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 8 | ||||
-rw-r--r-- | src/quick/scenegraph/qsgbasicinternalimagenode.cpp | 3 |
4 files changed, 19 insertions, 4 deletions
diff --git a/src/quick/accessible/qaccessiblequickitem.cpp b/src/quick/accessible/qaccessiblequickitem.cpp index 87e581384b..98e7663c96 100644 --- a/src/quick/accessible/qaccessiblequickitem.cpp +++ b/src/quick/accessible/qaccessiblequickitem.cpp @@ -205,14 +205,16 @@ QAccessible::Role QAccessibleQuickItem::role() const // Workaround for setAccessibleRole() not working for // Text items. Text items are special since they are defined // entirely from C++ (setting the role from QML works.) - if (qobject_cast<QQuickText*>(const_cast<QQuickItem *>(item()))) - return QAccessible::StaticText; QAccessible::Role role = QAccessible::NoRole; if (item()) role = QQuickItemPrivate::get(item())->accessibleRole(); - if (role == QAccessible::NoRole) - role = QAccessible::Client; + if (role == QAccessible::NoRole) { + if (qobject_cast<QQuickText*>(const_cast<QQuickItem *>(item()))) + role = QAccessible::StaticText; + else + role = QAccessible::Client; + } return role; } diff --git a/src/quick/items/qquickevents_p_p.h b/src/quick/items/qquickevents_p_p.h index f3ce04d11e..d1a8bbd901 100644 --- a/src/quick/items/qquickevents_p_p.h +++ b/src/quick/items/qquickevents_p_p.h @@ -450,6 +450,8 @@ protected: Qt::MouseButton m_button = Qt::NoButton; Qt::MouseButtons m_pressedButtons; + friend class QQuickWindowPrivate; + Q_DISABLE_COPY(QQuickPointerEvent) }; diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index d27ee54c89..4f14eedd39 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -2548,6 +2548,10 @@ bool QQuickWindowPrivate::deliverPressOrReleaseEvent(QQuickPointerEvent *event, } for (QQuickItem *item : targetItems) { + if (!event->m_event) { + qWarning("event went missing during delivery! (nested sendEvent() is not allowed)"); + break; + } hasFiltered.clear(); if (!handlersOnly && sendFilteredPointerEvent(event, item)) { if (event->isAccepted()) { @@ -2562,6 +2566,10 @@ bool QQuickWindowPrivate::deliverPressOrReleaseEvent(QQuickPointerEvent *event, // nor to any item which already had a chance to filter. if (skipDelivery.contains(item)) continue; + if (!event->m_event) { + qWarning("event went missing during delivery! (nested sendEvent() is not allowed)"); + break; + } deliverMatchingPointsToItem(item, event, handlersOnly); if (event->allPointsAccepted()) handlersOnly = true; diff --git a/src/quick/scenegraph/qsgbasicinternalimagenode.cpp b/src/quick/scenegraph/qsgbasicinternalimagenode.cpp index 53271af9ab..03b48b4b8a 100644 --- a/src/quick/scenegraph/qsgbasicinternalimagenode.cpp +++ b/src/quick/scenegraph/qsgbasicinternalimagenode.cpp @@ -230,6 +230,9 @@ QSGGeometry *QSGBasicInternalImageNode::updateGeometry(const QRectF &targetRect, ++vCells; if (innerTargetRect.bottom() != targetRect.bottom()) ++vCells; + if (hCells * vCells * 4 >= 0x10000) + qWarning("QTBUG-58924 - Too many tiles in QSGInternalImageNode, rendering will be partially missing."); + QVarLengthArray<X, 32> xData(2 * hCells); QVarLengthArray<Y, 32> yData(2 * vCells); X *xs = xData.data(); |