Revert "Remove dirty flag validation during geometry change in the layout"

This reverts commit d85de8da60.

Reason for revert: QTBUG-120592
Pick-to: 6.7 6.6 6.5

Change-Id: I46f3b41508e9bfeca328b916ba172ea9e0d6aaa1
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
This commit is contained in:
Jani Heikkinen 2024-01-11 05:24:23 +00:00
parent 5c5a2c2484
commit 362a2dbcd7
1 changed files with 2 additions and 8 deletions

View File

@ -787,7 +787,6 @@ QQuickLayoutAttached *QQuickLayout::qmlAttachedProperties(QObject *object)
void QQuickLayout::updatePolish() void QQuickLayout::updatePolish()
{ {
qCDebug(lcQuickLayouts) << "updatePolish() ENTERING" << this; qCDebug(lcQuickLayouts) << "updatePolish() ENTERING" << this;
d_func()->m_disableRearrange = false;
m_inUpdatePolish = true; m_inUpdatePolish = true;
// Might have become "undirty" before we reach this updatePolish() // Might have become "undirty" before we reach this updatePolish()
@ -916,13 +915,8 @@ void QQuickLayout::itemChange(ItemChange change, const ItemChangeData &value)
maybeSubscribeToBaseLineOffsetChanges(item); maybeSubscribeToBaseLineOffsetChanges(item);
QQuickItemPrivate::get(item)->removeItemChangeListener(this, changeTypes); QQuickItemPrivate::get(item)->removeItemChangeListener(this, changeTypes);
qCDebug(lcQuickLayouts) << "ChildRemoved" << item; qCDebug(lcQuickLayouts) << "ChildRemoved" << item;
if (isReady()) { if (isReady())
invalidate(); invalidate();
// The invalidate() triggers polish and this relayout items in the
// layout engine. But if there is any geometry change from the same
// item (due to deferred deletion), its better to skip rearrange
d_func()->m_disableRearrange = true;
}
} }
QQuickItem::itemChange(change, value); QQuickItem::itemChange(change, value);
} }
@ -931,7 +925,7 @@ void QQuickLayout::geometryChange(const QRectF &newGeometry, const QRectF &oldGe
{ {
Q_D(QQuickLayout); Q_D(QQuickLayout);
QQuickItem::geometryChange(newGeometry, oldGeometry); QQuickItem::geometryChange(newGeometry, oldGeometry);
if (d->m_disableRearrange || !isReady()) if (invalidated() || d->m_disableRearrange || !isReady())
return; return;
qCDebug(lcQuickLayouts) << "QQuickLayout::geometryChange" << newGeometry << oldGeometry; qCDebug(lcQuickLayouts) << "QQuickLayout::geometryChange" << newGeometry << oldGeometry;