diff options
author | Sebastian Geerken <devnull@localhost> | 2014-06-27 13:48:22 +0200 |
---|---|---|
committer | Sebastian Geerken <devnull@localhost> | 2014-06-27 13:48:22 +0200 |
commit | fafccbb4d785eaed21bb77e93419a84edda18e05 (patch) | |
tree | 9db13b98f34211f1a540cde1ef2fac9cbbc63591 | |
parent | 3b2639bec13ac6fd70a32bdc45c25a890d5d9f92 (diff) |
Intrinsic extremes.
-rw-r--r-- | dw/types.hh | 2 | ||||
-rw-r--r-- | dw/widget.cc | 17 |
2 files changed, 19 insertions, 0 deletions
diff --git a/dw/types.hh b/dw/types.hh index e910d296..36d6caa1 100644 --- a/dw/types.hh +++ b/dw/types.hh @@ -180,6 +180,8 @@ struct Extremes { int minWidth; int maxWidth; + int minWidthIntrinsic; + int maxWidthIntrinsic; }; struct Content diff --git a/dw/widget.cc b/dw/widget.cc index 7d6bc98b..38d1de1c 100644 --- a/dw/widget.cc +++ b/dw/widget.cc @@ -614,6 +614,9 @@ void Widget::correctExtremes (Extremes *extremes) { // TODO Extremes only corrected? + extremes->minWidthIntrinsic = extremes->minWidth; + extremes->maxWidthIntrinsic = extremes->maxWidth; + DBG_OBJ_MSGF ("resize", 0, "<b>correctExtremes</b> (%d / %d)", extremes->minWidth, extremes->maxWidth); DBG_OBJ_MSG_START (); @@ -659,12 +662,26 @@ void Widget::getExtremes (Extremes *extremes) } if (extremesChanged ()) { + // For backward compatibility (part 1/2): + extremes->minWidthIntrinsic = extremes->maxWidthIntrinsic = -1; + getExtremesImpl (extremes); + + // For backward compatibility (part 2/2): + if (extremes->minWidthIntrinsic == -1) + extremes->minWidthIntrinsic = extremes->minWidth; + if (extremes->maxWidthIntrinsic == -1) + extremes->maxWidthIntrinsic = extremes->maxWidth; + this->extremes = *extremes; unsetFlags (EXTREMES_CHANGED); DBG_OBJ_SET_NUM ("extremes.minWidth", extremes->minWidth); + DBG_OBJ_SET_NUM ("extremes.minWidthIntrinsic", + extremes->minWidthIntrinsic); DBG_OBJ_SET_NUM ("extremes.maxWidth", extremes->maxWidth); + DBG_OBJ_SET_NUM ("extremes.maxWidthIntrinsic", + extremes->maxWidthIntrinsic); } else *extremes = this->extremes; |