aboutsummaryrefslogtreecommitdiff
path: root/dw/widget.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dw/widget.cc')
-rw-r--r--dw/widget.cc13
1 files changed, 7 insertions, 6 deletions
diff --git a/dw/widget.cc b/dw/widget.cc
index e2da20ad..68875158 100644
--- a/dw/widget.cc
+++ b/dw/widget.cc
@@ -761,6 +761,9 @@ void Widget::correctExtremes (Extremes *extremes)
DBG_OBJ_MSG_END ();
}
+ if (extremes->maxWidth < extremes->minWidth)
+ extremes->maxWidth = extremes->minWidth;
+
DBG_OBJ_MSGF ("resize", 1, "=> %d / %d",
extremes->minWidth, extremes->maxWidth);
DBG_OBJ_LEAVE ();
@@ -826,12 +829,12 @@ void Widget::calcFinalWidth (style::Style *style, int refWidth,
if (width != -1)
*finalWidth = width;
- if (minWidth != -1 && (*finalWidth == -1 || *finalWidth < minWidth))
+ if (minWidth != -1 && *finalWidth != -1 && *finalWidth < minWidth)
*finalWidth = minWidth;
- if (maxWidth != -1 && (*finalWidth == -1 || *finalWidth > maxWidth))
+ if (maxWidth != -1 && *finalWidth == -1 && *finalWidth > maxWidth)
*finalWidth = maxWidth;
- DBG_OBJ_MSGF ("resize", 1, "=> %d", width);
+ DBG_OBJ_MSGF ("resize", 1, "=> %d", *finalWidth);
DBG_OBJ_LEAVE ();
}
@@ -1435,9 +1438,7 @@ int Widget::getAvailWidthOfChild (Widget *child, bool forceValue)
int width;
- if (child->getStyle()->width == style::LENGTH_AUTO &&
- child->getStyle()->minWidth == style::LENGTH_AUTO &&
- child->getStyle()->maxWidth == style::LENGTH_AUTO) {
+ if (child->getStyle()->width == style::LENGTH_AUTO) {
DBG_OBJ_MSG ("resize", 1, "no specification");
if (forceValue)
width = misc::max (getAvailWidth (true) - boxDiffWidth (), 0);