From 3c968cc06f7a1a4b314a1eb1c46556fdbdc5e584 Mon Sep 17 00:00:00 2001 From: Sebastian Geerken Date: Sat, 18 Jun 2016 12:57:45 +0200 Subject: Documentation and comments on Jorge's patch. --- dw/oofawarewidget.hh | 3 ++- dw/textblock.cc | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'dw') diff --git a/dw/oofawarewidget.hh b/dw/oofawarewidget.hh index e49cce14..8d18675e 100644 --- a/dw/oofawarewidget.hh +++ b/dw/oofawarewidget.hh @@ -249,7 +249,8 @@ public: core::DrawingContext *context); /** - * ... + * Update content in flow, down from `ref`. Uses e. g. when floats sizes have + * changed. */ virtual void updateReference (int ref); diff --git a/dw/textblock.cc b/dw/textblock.cc index f851fd4e..dbf6e8e1 100644 --- a/dw/textblock.cc +++ b/dw/textblock.cc @@ -3034,6 +3034,14 @@ void Textblock::queueDrawRange (int index1, int index2) void Textblock::updateReference (int ref) { + // The condition "(lines->size () > 0)" prevents CPU hogging in some cases, + // see devdoc/dw-miscellaneous.doc, "Relation between + // dw::core::Widget::markSizeChange and dw::core::Widget::queueResize". + // + // This condition is safe, since an implementation of + // dw::oof::OOFAwareWidget::updateReference should only affect content in + // flow, not widgets out of flow, like floats. + if (lines->size () > 0) queueResize (ref, false); } -- cgit v1.2.3