diff options
Diffstat (limited to 'src/layouts/qgridlayoutengine.cpp')
| -rw-r--r-- | src/layouts/qgridlayoutengine.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/layouts/qgridlayoutengine.cpp b/src/layouts/qgridlayoutengine.cpp index bba1efbd0..e6b21e51b 100644 --- a/src/layouts/qgridlayoutengine.cpp +++ b/src/layouts/qgridlayoutengine.cpp @@ -610,8 +610,11 @@ QGridLayoutBox QGridLayoutItem::box(Qt::Orientation orientation, qreal constrain } result.q_minimumDescent = sizeHint(Qt::MinimumDescent, constraintSize).height(); - if (result.q_minimumDescent >= 0.0) + if (result.q_minimumDescent != -1.0) { + const qreal minSizeHint = sizeHint(Qt::MinimumSize, constraintSize).height(); + result.q_minimumDescent -= (minSizeHint - result.q_minimumSize); result.q_minimumAscent = result.q_minimumSize - result.q_minimumDescent; + } } if (policy & QLayoutPolicy::IgnoreFlag) result.q_preferredSize = result.q_minimumSize; @@ -622,10 +625,8 @@ QGridLayoutBox QGridLayoutItem::box(Qt::Orientation orientation, qreal constrain QRectF QGridLayoutItem::geometryWithin(qreal x, qreal y, qreal width, qreal height, qreal rowDescent, Qt::Alignment align) const { - rowDescent = -1.0; // ### This disables the descent - QGridLayoutBox vBox = box(Qt::Vertical); - if (vBox.q_minimumDescent < 0.0 || rowDescent < 0.0) { + if (!(align & Qt::AlignBaseline) || vBox.q_minimumDescent < 0.0 || rowDescent < 0.0) { qreal cellWidth = width; qreal cellHeight = height; |
