https://issues.apache.org/ooo/show_bug.cgi?id=122453

--- Comment #8 from Andre <[email protected]> ---
The wrong values for Writer are caused by out-of-date values for pool and
dialog units for the spin fields.  These define the units in which values are
stored/exchanged and displayed.

There are two different problems with that.

1) The values are initialized in the constructor of the panel.  After that only
meDlgUnit is updated when the SID_ATTR_METRIC slot changes its value.  The
value of mePoolUnit is never changed.

Apparently the values are initialized too early.  The value of meDlgUnit is
FUNIT_NONE when the spin fields for width and height are set.  This leads to
values of 99,99.

2) The SID_ATTR_METRIC value is updated *after* width and height.  At that time
the values of the spin fields are already set.

Only in combination 1 and 2 lead to an error.  Setting the SID_ATTR_METRIC
value should result in a conversion of the values in the width and height spin
fields.  This conversion does not take place because their unit is set to
FUNIT_NONE.

This can be fixed by setting mePoolUnit and meDlgUnit in every call to
PosSizePropertyPanel::NotifyItemUpdate().  Whenever the values of the position
or size controls are set, their unit is also set by a call to SetFieldUnit. 
This makes sure that the field units are correctly initialized.  When then a
little later the metric unit is modified the spin field values are correctly
transformed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to