tdf#114836, only set changed SfxItemSet properties
By always setting all existing properties again the calls started
to differ between XMultiPropertySet::setPropertyValues and
XPropertySet::setPropertyValue. This patch reduces the changes in
the called methods. We can not avoid slight differences but at least
the risk is minimized that something is unexpectedly changed.
Change-Id: I5866db7be2829e6aba930f620f45db655df4e3f7
Reviewed-on: https://gerrit.libreoffice.org/63854
Tested-by: Jenkins
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
(cherry picked from commit 80cf278d365a2d357c70b8c28947c91fa97e7a99)
Reviewed-on: https://gerrit.libreoffice.org/63857
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/svx/source/unodraw/unoshape.cxx b/svx/source/unodraw/unoshape.cxx
index f2bfa4f..1a187f7 100644
--- a/svx/source/unodraw/unoshape.cxx
+++ b/svx/source/unodraw/unoshape.cxx
@@ -1687,7 +1687,11 @@ void SvxShape::_setPropertyValue( const OUString& rPropertyName, const uno::Any&
{
if( mpImpl->mpItemSet == nullptr )
{
mpImpl->mpItemSet = GetSdrObject()->GetMergedItemSet().Clone();
mpImpl->mpItemSet.reset(new SfxItemSet( GetSdrObject()->getSdrModelFromSdrObject().GetItemPool(), {{pMap->nWID, pMap->nWID}}));
}
else
{
mpImpl->mpItemSet->MergeRange(pMap->nWID, pMap->nWID);
}
pSet = mpImpl->mpItemSet.get();
}