aboutsummaryrefslogtreecommitdiff
path: root/doc/dw-miscellaneous.doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc/dw-miscellaneous.doc')
-rw-r--r--doc/dw-miscellaneous.doc25
1 files changed, 25 insertions, 0 deletions
diff --git a/doc/dw-miscellaneous.doc b/doc/dw-miscellaneous.doc
index a19b1fd6..596f4ce5 100644
--- a/doc/dw-miscellaneous.doc
+++ b/doc/dw-miscellaneous.doc
@@ -12,10 +12,35 @@ Widget allocation outside of parent allocation
A widget allocation outside of the allocation of the parent is
allowed, but the part outside is not visible.
+Which widgets may be drawn?
+-------------------
+
+All drawing starts with the toplevel widget
+(cf. dw::core::Widget::queueDrawArea, dw::core::Layout::queueDraw, and
+dw::core::Layout::expose), and a widget has to draw its children, in a
+way consistent with their stacking order.
+
+There are two exceptions:
+
+1. Direct descendants, which are not children, may be drawn, if the
+ parent can distinguish them and so omit drawing them a second
+ time. See dw::core::StackingContextMgr and \ref dw-stacking-context.
+ Parents should not draw children in flow for which
+ dw::core::StackingContextMgr::handledByStackingContextMgr returns
+ true.
+2. Interrupted drawing: via dw::core::Widget::drawInterruption; see
+ \ref dw-interrupted-drawing.
+
+Similar rules apply to handling mouse events
+(dw::core::Widget::getWidgetAtPoint).
+
Interrupted drawing
-------------------
\ref dw-interrupted-drawing.
+Similar rules apply to handling mouse events
+(dw::core::Widget::getWidgetAtPoint).
+
Floats
======