aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/Makefile.am2
-rw-r--r--doc/dw-out-of-flow-2.doc39
-rw-r--r--doc/dw-out-of-flow.doc5
3 files changed, 46 insertions, 0 deletions
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 591ede4c..0721f0ba 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -11,6 +11,8 @@ EXTRA_DIST = \
dw-widget-sizes.doc \
dw-changes.doc \
dw-images-and-backgrounds.doc \
+ dw-dw-out-of-flow.doc \
+ dw-dw-out-of-flow-2.doc \
fltk-problems.doc \
rounding-errors.doc \
uml-legend.doc \
diff --git a/doc/dw-out-of-flow-2.doc b/doc/dw-out-of-flow-2.doc
new file mode 100644
index 00000000..64c61343
--- /dev/null
+++ b/doc/dw-out-of-flow-2.doc
@@ -0,0 +1,39 @@
+/** \page dw-out-of-flow-2 Handling Elements Out Of Flow (cont.)
+
+(Some notes, to be integrated into \ref dw-out-of-flow.)
+
+Constructing a page with floats
+-------------------------------
+...
+
+
+Float changes its size
+----------------------
+The float itself will call queueResize, which will result in a call of
+markSizeChange for the *containing* block, which will then call
+dw::OutOfFlowMgr::markSizeChange. Here, the vloat is only *marked* as
+dirty; the size will be calculated later (in
+dw::OutOfFlowMgr::ensureFloatSize).
+
+This will trigger the resize idle function, so sizeRequest and
+sizeAllocate for all floats and textblocks. In this run,
+dw::OutOfFlowMgr::hasRelationChanged will return *true*, and so result
+in a call of dw::Textblock::borderChanged, and trigger a second run of
+the resize idle function, dealing correctly with the new size.
+
+(This case is handles in a not perfectly optimal way, since two runs
+of the resize idle function are neccessary; but size changes of floats
+is not a very common case.
+
+When a page is constructed (see above), a changing size of a float
+currently constructed typically only affects the most bottom
+textblock; the other textblocks are not covered by this float.)
+
+**Error:** In this case, new collisions are not yet considered.
+
+
+Changing the pages width
+------------------------
+...
+
+*/ \ No newline at end of file
diff --git a/doc/dw-out-of-flow.doc b/doc/dw-out-of-flow.doc
index ab0400f1..3e773ba4 100644
--- a/doc/dw-out-of-flow.doc
+++ b/doc/dw-out-of-flow.doc
@@ -174,4 +174,9 @@ introduced. Details are hidden by static inline methods of
dw::OutOfFlowMgr.
+See also
+========
+
+\ref dw-out-of-flow-2
+
*/ \ No newline at end of file