From c5bc66df2fd976f4e055c579f6918138d3accd87 Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Tue, 21 Oct 2014 10:49:54 +0200 Subject: Respect minimum size of heightForWidth layouts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since we cannot support heightForWidth constraints on toplevel windows, it is impossible to solve this perfectly: if the window is resizable at all, the user will be able to resize it too small. Our old solution was just to give up and allow completely free resizing, even down to 0x0. This makes very little sense. It is clearly better to use the minimum size that we have already computed, even though it is not perfect. This reverts a behavior change introduced in commit 36e9516f85fbb9c9a236f5ca034d5a0126d86c12 (September 9th, 2002) [ChangeLog][QtWidgets][QLayout] Widgets and dialogs containing layouts with heightForWidth (such as a label with word wrap) will no longer get a minimum size of 0x0. Task-number: QTBUG-37673 Change-Id: If26b7ef9c80edbf9d54c6519b36646df408b7652 Reviewed-by: Jan Arve Sæther --- src/widgets/kernel/qlayout.cpp | 9 --------- 1 file changed, 9 deletions(-) (limited to 'src') diff --git a/src/widgets/kernel/qlayout.cpp b/src/widgets/kernel/qlayout.cpp index 3900444df4..46cab90ab4 100644 --- a/src/widgets/kernel/qlayout.cpp +++ b/src/widgets/kernel/qlayout.cpp @@ -1106,15 +1106,6 @@ bool QLayout::activate() ms.setWidth(mw->minimumSize().width()); if (heightSet) ms.setHeight(mw->minimumSize().height()); - if ((!heightSet || !widthSet) && hasHeightForWidth()) { - int h = minimumHeightForWidth(ms.width()); - if (h > ms.height()) { - if (!heightSet) - ms.setHeight(0); - if (!widthSet) - ms.setWidth(0); - } - } mw->setMinimumSize(ms); } else if (!widthSet || !heightSet) { QSize ms = mw->minimumSize(); -- cgit v1.2.3