From cdc7bebac4c0fa7fe198c4b72c62948ffeb12815 Mon Sep 17 00:00:00 2001 From: Sebastian Geerken Date: Mon, 2 Feb 2015 14:37:53 +0100 Subject: Fixed too large widget reference space for relatively positioned elements. --- dw/oofposrelmgr.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'dw/oofposrelmgr.cc') diff --git a/dw/oofposrelmgr.cc b/dw/oofposrelmgr.cc index f1bae6d8..8980e079 100644 --- a/dw/oofposrelmgr.cc +++ b/dw/oofposrelmgr.cc @@ -56,7 +56,20 @@ void OOFPosRelMgr::markExtremesChange (int ref) void OOFPosRelMgr::calcWidgetRefSize (Widget *widget, Requisition *size) { DBG_OBJ_ENTER ("resize.oofm", 0, "calcWidgetRefSize", "%p", widget); + widget->sizeRequest (size); + + // In some cases, the widget has been enlarged for widgets out of + // flow. Partly, this is done by adding "extra space"; however, at + // this point, the extra space is not relevant here. See + // "oofawarewidget.cc" for a calculation of RequisitionWithoutOOF. + // (Notice also that Widget::sizeRequest has to be called in all + // cases.) + + if (widget->instanceOf (OOFAwareWidget::CLASS_ID)) + *size = *((OOFAwareWidget*)widget)->getRequisitionWithoutOOF (); + + DBG_OBJ_LEAVE_VAL ("%d * (%d + %d)", size->width, size->ascent, size->descent); } -- cgit v1.2.3