aboutsummaryrefslogtreecommitdiff
path: root/dw/widget.cc
diff options
context:
space:
mode:
authorSebastian Geerken <devnull@localhost>2014-09-10 12:26:44 +0200
committerSebastian Geerken <devnull@localhost>2014-09-10 12:26:44 +0200
commit5b50f9e319263a730843be1aae5dfd7c549e1622 (patch)
treeec0ce2e00c11e7d6d95d187f5002219bb1b9296f /dw/widget.cc
parent02a6942a42619ad31ae0ea0b2f8b4f6e17ae3272 (diff)
parentafe572a3dcac774dd90684f1328dd480bfe7db97 (diff)
Merge with main repo.
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);