Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
5.9, 5.15.0
-
None
Description
QComboBox do not reset cached var "minimumSizeHint" after the font has changed.
// Qt 5.15, QComboBox implementation ... /*! \reimp */ void QComboBox::changeEvent(QEvent *e) { Q_D(QComboBox); switch (e->type()) { case QEvent::StyleChange: d->updateDelegate(); #ifdef Q_OS_MAC case QEvent::MacSizeChange: #endif d->sizeHint = QSize(); // invalidate size hint d->minimumSizeHint = QSize(); ... break; case QEvent::FontChange: { d->sizeHint = QSize(); // invalidate size hint /* d->minimumSizeHint = QSize(); it is necessary too !!! */ d->viewContainer()->setFont(font()); d->viewContainer()->itemView()->doItemsLayout(); if (d->lineEdit) d->updateLineEditGeometry(); break; } default: break; } QWidget::changeEvent(e); } ...
QAbstractSpinBox for example:
// Qt 5.15, QAbstractSpinBox implementation ... bool QAbstractSpinBox::event(QEvent *event) { Q_D(QAbstractSpinBox); switch (event->type()) { case QEvent::FontChange: case QEvent::StyleChange: d->cachedSizeHint = d->cachedMinimumSizeHint = QSize(); break; ... } return QWidget::event(event); }