diff options
Diffstat (limited to 'dw/textblock.cc')
-rw-r--r-- | dw/textblock.cc | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/dw/textblock.cc b/dw/textblock.cc index 9ae0e29e..2dfb29bc 100644 --- a/dw/textblock.cc +++ b/dw/textblock.cc @@ -242,7 +242,7 @@ Textblock::Textblock (bool limitTextWidth) DBG_OBJ_SET_NUM ("words.size", words->size ()); DBG_OBJ_SET_NUM ("wrapRefLines", wrapRefLines); DBG_OBJ_SET_NUM ("wrapRefParagraphs", wrapRefParagraphs); - DBG_OBJ_SET_NUM ("wrapRefLinesFCX",wrapRefLinesFCX); + DBG_OBJ_SET_NUM ("wrapRefLinesFCX", wrapRefLinesFCX); DBG_OBJ_SET_NUM ("wrapRefLinesFCY", wrapRefLinesFCY); hoverLink = -1; @@ -319,20 +319,23 @@ void Textblock::sizeRequestImpl (core::Requisition *requisition, int numPos, // true.) int newLineBreakWidth = getAvailWidth (true); - int newFCX = getGeneratorX (OOFM_FLOATS); - int newFCY = getGeneratorY (OOFM_FLOATS); + int newFCX, newFCY; + bool fcDefined = findSizeRequestReference (OOFM_FLOATS, &newFCX, &newFCY); if (newLineBreakWidth != lineBreakWidth || - newFCX != wrapRefLinesFCX || newFCY != wrapRefLinesFCY) { + (fcDefined && (newFCX != wrapRefLinesFCX || + newFCY != wrapRefLinesFCY))) { lineBreakWidth = newLineBreakWidth; wrapRefLines = 0; - wrapRefLinesFCX = newFCX; - wrapRefLinesFCY = newFCY; - DBG_OBJ_SET_NUM ("lineBreakWidth", lineBreakWidth); DBG_OBJ_SET_NUM ("wrapRefLines", wrapRefLines); - DBG_OBJ_SET_NUM ("wrapRefLinesFCX",wrapRefLinesFCX); - DBG_OBJ_SET_NUM ("wrapRefLinesFCY", wrapRefLinesFCY); + + if (!fcDefined) { + wrapRefLinesFCX = newFCX; + wrapRefLinesFCY = newFCY; + DBG_OBJ_SET_NUM ("wrapRefLinesFCX", wrapRefLinesFCX); + DBG_OBJ_SET_NUM ("wrapRefLinesFCY", wrapRefLinesFCY); + } } rewrap (); |