Dillo
Miscellaneous Notes on Dw

This is a barely sorted list of issues which I consider noteworthy, but have yet to be moved to other parts of the documentation (which is partly to be created).

General

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 Handling stacking contexts. Parents should not draw children in flow for which dw::core::StackingContextMgr::handledByStackingContextMgr returns true.
  2. Interrupted drawing: via dw::core::Widget::drawInterruption; see Interrupted drawing.

Similar rules apply to handling mouse events (dw::core::Widget::getWidgetAtPoint).

Interrupted drawing

Interrupted drawing.

Similar rules apply to handling mouse events (dw::core::Widget::getWidgetAtPoint).

Extra space

Should dw::core::Widget::calcExtraSpace be called from dw::core::Widget::getExtremes?