aboutsummaryrefslogtreecommitdiff
path: root/dw
diff options
context:
space:
mode:
Diffstat (limited to 'dw')
-rw-r--r--dw/textblock.cc1
-rw-r--r--dw/widget.cc1
-rw-r--r--dw/widget.hh8
3 files changed, 10 insertions, 0 deletions
diff --git a/dw/textblock.cc b/dw/textblock.cc
index fb7c141c..f4a53f7f 100644
--- a/dw/textblock.cc
+++ b/dw/textblock.cc
@@ -2425,6 +2425,7 @@ void Textblock::addWidget (core::Widget *widget, core::style::Style *style)
Word *word = addWord (size.width, size.ascent, size.descent, 0, style);
word->content.type = core::Content::WIDGET_OOF_REF;
word->content.widgetReference = new core::WidgetReference (widget);
+ widget->setWidgetReference (word->content.widgetReference);
// After a out-of-flow reference, breaking is allowed. (This avoids some
// problems with breaking near float definitions.)
diff --git a/dw/widget.cc b/dw/widget.cc
index 776c3f88..7538b58b 100644
--- a/dw/widget.cc
+++ b/dw/widget.cc
@@ -73,6 +73,7 @@ Widget::Widget ()
flags = (Flags)(NEEDS_RESIZE | EXTREMES_CHANGED);
parent = quasiParent = generator = container = NULL;
+ setWidgetReference (NULL);
DBG_OBJ_SET_PTR ("container", container);
layout = NULL;
diff --git a/dw/widget.hh b/dw/widget.hh
index 165ea09a..2e9bcfd1 100644
--- a/dw/widget.hh
+++ b/dw/widget.hh
@@ -125,6 +125,8 @@ private:
*/
Widget *container;
+ WidgetReference *widgetReference;
+
style::Style *style;
Flags flags;
@@ -548,6 +550,12 @@ public:
int getGeneratorLevel ();
Widget *getNearestCommonAncestor (Widget *otherWidget);
+ inline WidgetReference *getWidgetReference () { return widgetReference; }
+ inline void setWidgetReference (WidgetReference *widgetReference) {
+ this->widgetReference = widgetReference;
+ DBG_OBJ_SET_PTR ("widgetReference", widgetReference);
+ }
+
inline Widget *getGenerator () { return generator ? generator : parent; }
inline Layout *getLayout () { return layout; }