Don't trigger qBound assert in QExpandingLineEdit

Ignore the original width if it's larger than maximum.

Fixes: QTBUG-104383
Fixes: QTBUG-104565
Change-Id: Id86d4f5bd1d50304d95c4711f1989f4dae416b69
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
(cherry picked from commit 9fcd5f0790fd01307cfece96d82df21c787fa5b3)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Volker Hilsheimer 2022-06-24 11:14:09 +02:00 committed by Qt Cherry-pick Bot
parent 28deee2248
commit 87d4cb06b1

View File

@ -555,7 +555,7 @@ void QExpandingLineEdit::resizeToContents()
int hintWidth = minimumWidth() + fontMetrics().horizontalAdvance(displayText()); int hintWidth = minimumWidth() + fontMetrics().horizontalAdvance(displayText());
int parentWidth = parent->width(); int parentWidth = parent->width();
int maxWidth = isRightToLeft() ? position.x() + oldWidth : parentWidth - position.x(); int maxWidth = isRightToLeft() ? position.x() + oldWidth : parentWidth - position.x();
int newWidth = qBound(originalWidth, hintWidth, maxWidth); int newWidth = qBound(qMin(originalWidth, maxWidth), hintWidth, maxWidth);
if (widgetOwnsGeometry) if (widgetOwnsGeometry)
setMaximumWidth(newWidth); setMaximumWidth(newWidth);
if (isRightToLeft()) if (isRightToLeft())