summaryrefslogtreecommitdiff
path: root/dw/textblock_linebreaking.cc
diff options
context:
space:
mode:
authorSebastian Geerken <devnull@localhost>2015-01-30 19:27:16 +0100
committerSebastian Geerken <devnull@localhost>2015-01-30 19:27:16 +0100
commitb1e34672ecbe28c18462cd1b02ba0b2cfc7f772b (patch)
tree8812e9c6b89b4099129d00e8a123ea1f501943de /dw/textblock_linebreaking.cc
parent76544475ea4a8578351a818068657a9bd6cd5a06 (diff)
Relative positions, part 1.
Diffstat (limited to 'dw/textblock_linebreaking.cc')
-rw-r--r--dw/textblock_linebreaking.cc16
1 files changed, 15 insertions, 1 deletions
diff --git a/dw/textblock_linebreaking.cc b/dw/textblock_linebreaking.cc
index e9815d93..719389a6 100644
--- a/dw/textblock_linebreaking.cc
+++ b/dw/textblock_linebreaking.cc
@@ -1914,8 +1914,22 @@ void Textblock::rewrap ()
for (int i = firstWord; i < words->size (); i++) {
Word *word = words->getRef (i);
- if (word->content.type == core::Content::WIDGET_IN_FLOW)
+ switch (word->content.type) {
+ case core::Content::WIDGET_IN_FLOW:
word->content.widget->sizeRequest (&word->size);
+ break;
+
+ case core::Content::WIDGET_OOF_REF:
+ {
+ int oofmIndex = getOOFMIndex (word->content.widget);
+ oof::OutOfFlowMgr *oofm = searchOutOfFlowMgr (oofmIndex);
+ oofm->calcWidgetRefSize (word->content.widget, &(word->size));
+ }
+ break;
+
+ default:
+ break;
+ }
wordWrap (i, false);