Hi, all!
I believe I found the cause of fdo#49859 "FORMATTING, UI: numbering
alignment or
indentation is not applied in Impress"
When the "Position" tab is deactivated,
SvxNumPositionTabPage::DeactivatePage()
is called. This call serves two purposes:
1: To check whether the Tab Page may be deactivated (answer: sal_True)
2: To retrieve the user input from this Tab Page
The Position tab contains two MetricFields: aDistBorderMF and aIndentMF. The
processing of input in these fields is triggered when they lose focus, by:
SvxNumPositionTabPage::DistanceHdl_Impl()
When either aDistBorderMF or aIndentMF has focus when the Position tab is
deactivated, it faithfully triggers a call to DistanceHdl_Impl(). But this
happens AFTER the call to DeactivatePage(). Therefore, the user input
retrieved from DeactivatePage() doesn't reflect the last changes made
in aDistBorderMF or aIndentMF.
I propose an addition to DeactivatePage():
int SvxNumPositionTabPage::DeactivatePage(SfxItemSet *_pSet)
{
if(_pSet)
{
if(aDistBorderMF.IsEnabled())
DistanceHdl_Impl(&aDistBorderMF);
DistanceHdl_Impl(&aIndentMF);
FillItemSet(*_pSet);
}
return sal_True;
}
Question:
Ideally, I would wrap the DistanceHdl_Impl() calls in ..MF.HasFocus() checks
to prevent unnecessary calls:
if(aDistBorderMF.HasFocus() && aDistBorderMF.IsEnabled())
DistanceHdl_Impl(&aDistBorderMF);
if(aIndentMF.HasFocus())
DistanceHdl_Impl(&aIndentMF);
FillItemSet(*_pSet);
But both aDistBorderMF.HasFocus() and aIndentMF.HasFocus() always seem to
return
false! Is this intentional, or a bug?
Context
- [PATCH] proposed fix for fdo#49859 · Stephan van den Akker
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.