aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorSebastian Geerken <devnull@localhost>2014-02-08 11:40:42 +0100
committerSebastian Geerken <devnull@localhost>2014-02-08 11:40:42 +0100
commitefa825e13a563d84441f7eaf1a7bd56449051d34 (patch)
treeb8bd1dc35c416badbe6f8e5bc828c97570893a89 /doc
parent23e52a02544773a567e9f978d12984899853f869 (diff)
"Thinking loud".
Diffstat (limited to 'doc')
-rw-r--r--doc/dw-out-of-flow-2.doc26
1 files changed, 20 insertions, 6 deletions
diff --git a/doc/dw-out-of-flow-2.doc b/doc/dw-out-of-flow-2.doc
index ed7d7638..de15c672 100644
--- a/doc/dw-out-of-flow-2.doc
+++ b/doc/dw-out-of-flow-2.doc
@@ -8,9 +8,9 @@ Constructing a page with floats
When a page is constructed (dw::Textblock::addWord), the *generating*
block tells the positions of floats (or, generally, widgets out of
flow) via dw::OutOfFlowMgr::tellPosition. This method considers
-already collisions (with previous floats; floats following this float
-are not considered); after the call, dw::OutOfFlowMgr::getBorder will
-return correct values.
+already collisions with other floats (only previous floats; floats
+following this float are not considered); after the call,
+dw::OutOfFlowMgr::getBorder will return correct values.
dw::OutOfFlowMgr::tellPosition also checks for overlaps of this float
with other textblocks, except this textblock (the *generator*, which
@@ -49,8 +49,22 @@ textblock; the other textblocks are not covered by this float.)
**Error:** In this case, new collisions are not yet considered.
-Changing the pages width
-------------------------
-...
+Changing the width of the page
+------------------------------
+
+When the page width is changed, this will result in a reconstruction
+of the page; see *Constructing a page with floats*. Anyway, checking
+for overlaps will play a more important role. This is handled in an
+optimal way by dw::OutOfFlowMgr::hasRelationChanged.
+
+**Check:** Are "cascades" avoided, like this:
+
+1. All textblocks are constructed. A float in textblock 1 overlaps
+ with textblock 2, so dw::Textblock::borderChanged is called for
+ textblock 2.
+2. In another resize idle run, textblock 2 is constructed again. A
+ float in textblock 2 overlaps with textblock 3, so that
+ dw::Textblock::borderChanged is called for textblock 3.
+3. Etc.
*/ \ No newline at end of file