sw/CppunitTest_sw_uibase_frmdlg.mk | 73 ++++++++++++++++ sw/Module_sw.mk | 1 sw/qa/extras/uiwriter/uiwriter.cxx | 2 sw/qa/uibase/frmdlg/data/wrapped-math-object.docx |binary sw/qa/uibase/frmdlg/frmdlg.cxx | 51 +++++++++++ sw/source/core/doc/DocumentContentOperationsManager.cxx | 6 - sw/source/core/draw/dflyobj.cxx | 2 sw/source/uibase/app/appenv.cxx | 2 sw/source/uibase/frmdlg/frmmgr.cxx | 10 +- sw/source/uibase/inc/frmmgr.hxx | 3 sw/source/uibase/shells/basesh.cxx | 10 +- sw/source/uibase/shells/frmsh.cxx | 4 sw/source/uibase/shells/grfsh.cxx | 4 sw/source/uibase/shells/textsh.cxx | 4 sw/source/uibase/uiview/view2.cxx | 4 sw/source/uibase/wrtsh/wrtsh1.cxx | 11 +- writerfilter/source/dmapper/DomainMapper_Impl.cxx | 4 17 files changed, 162 insertions(+), 29 deletions(-)
New commits: commit 4682675b735bc8c0b693b422f0cf43743956f834 Author: Miklos Vajna <vmik...@collabora.com> AuthorDate: Mon Jul 27 21:03:26 2020 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Thu Jul 30 11:44:03 2020 +0200 tdf#134610 sw: fix incorrect position of math object from DOCX Regression from commit a2f85c062aafb3fd9dfb1c6c6e87e1e73e7545a3 (tdf#130362 sw: fix anchoring of inline math objects, 2020-02-04), the problem was that the SwFlyFrameAttrMgr ctor wanted to set the anchor type to at-char, and then later DocumentContentOperationsManager::InsertEmbObject() wanted to undo that for math objects, but this did not play nicely with objects imported from DOCX. So don't set and clear the anchor type, rather set it conditionally in the first place. This allows setting the anchor type in writerfilter/ before insertion, and then all of 1) docx import (depends) 2) insert of Math objects (as-char) 3) insert of images (at-char) are working. (cherry picked from commit 383f39493c0ca3e11c296fa37e7d9cf679065f74) Change-Id: I94d82c12f30d069426db1bab70c456cadf1c91ef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99661 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sw/CppunitTest_sw_uibase_frmdlg.mk b/sw/CppunitTest_sw_uibase_frmdlg.mk new file mode 100644 index 000000000000..5c2b8b7283b7 --- /dev/null +++ b/sw/CppunitTest_sw_uibase_frmdlg.mk @@ -0,0 +1,73 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +#************************************************************************* +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +#************************************************************************* + +$(eval $(call gb_CppunitTest_CppunitTest,sw_uibase_frmdlg)) + +$(eval $(call gb_CppunitTest_use_common_precompiled_header,sw_uibase_frmdlg)) + +$(eval $(call gb_CppunitTest_add_exception_objects,sw_uibase_frmdlg, \ + sw/qa/uibase/frmdlg/frmdlg \ +)) + +$(eval $(call gb_CppunitTest_use_libraries,sw_uibase_frmdlg, \ + comphelper \ + cppu \ + cppuhelper \ + editeng \ + sal \ + sfx \ + svl \ + svx \ + svxcore \ + sw \ + test \ + unotest \ + utl \ + vcl \ +)) + +$(eval $(call gb_CppunitTest_use_externals,sw_uibase_frmdlg,\ + boost_headers \ + libxml2 \ +)) + +$(eval $(call gb_CppunitTest_set_include,sw_uibase_frmdlg,\ + -I$(SRCDIR)/sw/inc \ + -I$(SRCDIR)/sw/source/core/inc \ + -I$(SRCDIR)/sw/source/uibase/inc \ + -I$(SRCDIR)/sw/qa/inc \ + $$(INCLUDE) \ +)) + +$(eval $(call gb_CppunitTest_use_api,sw_uibase_frmdlg,\ + udkapi \ + offapi \ + oovbaapi \ +)) + +$(eval $(call gb_CppunitTest_use_ure,sw_uibase_frmdlg)) +$(eval $(call gb_CppunitTest_use_vcl,sw_uibase_frmdlg)) + +$(eval $(call gb_CppunitTest_use_rdb,sw_uibase_frmdlg,services)) + +$(eval $(call gb_CppunitTest_use_custom_headers,sw_uibase_frmdlg,\ + officecfg/registry \ +)) + +$(eval $(call gb_CppunitTest_use_configuration,sw_uibase_frmdlg)) + +$(eval $(call gb_CppunitTest_use_uiconfigs,sw_uibase_frmdlg, \ + modules/swriter \ +)) + +$(eval $(call gb_CppunitTest_use_more_fonts,sw_uibase_frmdlg)) + +# vim: set noet sw=4 ts=4: diff --git a/sw/Module_sw.mk b/sw/Module_sw.mk index 731dc4ef7ca6..1dd4f34cc61f 100644 --- a/sw/Module_sw.mk +++ b/sw/Module_sw.mk @@ -110,6 +110,7 @@ $(eval $(call gb_Module_add_slowcheck_targets,sw,\ CppunitTest_sw_core_doc \ CppunitTest_sw_uibase_shells \ CppunitTest_sw_uibase_dochdl \ + CppunitTest_sw_uibase_frmdlg \ CppunitTest_sw_core_accessibilitycheck \ CppunitTest_sw_core_layout \ CppunitTest_sw_core_frmedt \ diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx index 1dae7b7dce99..ac68f39859df 100644 --- a/sw/qa/extras/uiwriter/uiwriter.cxx +++ b/sw/qa/extras/uiwriter/uiwriter.cxx @@ -4385,7 +4385,7 @@ void SwUiWriterTest::testTdf88986() // Create the item set that is normally passed to the insert frame dialog. SwWrtShell* pWrtShell = pDoc->GetDocShell()->GetWrtShell(); - SwFlyFrameAttrMgr aMgr(true, pWrtShell, Frmmgr_Type::TEXT); + SwFlyFrameAttrMgr aMgr(true, pWrtShell, Frmmgr_Type::TEXT, nullptr); SfxItemSet aSet = aShell.CreateInsertFrameItemSet(aMgr); // This was missing along with the gradient and other tables. diff --git a/sw/qa/uibase/frmdlg/data/wrapped-math-object.docx b/sw/qa/uibase/frmdlg/data/wrapped-math-object.docx new file mode 100644 index 000000000000..c6f76dd5d77e Binary files /dev/null and b/sw/qa/uibase/frmdlg/data/wrapped-math-object.docx differ diff --git a/sw/qa/uibase/frmdlg/frmdlg.cxx b/sw/qa/uibase/frmdlg/frmdlg.cxx new file mode 100644 index 000000000000..3700abb9d946 --- /dev/null +++ b/sw/qa/uibase/frmdlg/frmdlg.cxx @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include <swmodeltestbase.hxx> + +#include <com/sun/star/text/TextContentAnchorType.hpp> + +char const DATA_DIRECTORY[] = "/sw/qa/uibase/frmdlg/data/"; + +/// Covers sw/source/uibase/frmdlg/ fixes. +class SwUibaseFrmdlgTest : public SwModelTestBase +{ +public: + void createDoc(const char* pName = nullptr); +}; + +void SwUibaseFrmdlgTest::createDoc(const char* pName) +{ + if (!pName) + { + loadURL("private:factory/swriter", nullptr); + } + else + { + load(DATA_DIRECTORY, pName); + } +} + +CPPUNIT_TEST_FIXTURE(SwUibaseFrmdlgTest, testWrappedMathObject) +{ + // The document includes a Math object with explicit wrapping. + createDoc("wrapped-math-object.docx"); + uno::Reference<drawing::XShape> xMath = getShape(1); + + // Without the accompanying fix in place, this test would have failed with: + // - Expected: 4 (AT_CHARACTER) + // - Actual : 1 (AS_CHARACTER) + // i.e. the object lost its wrapping, leading to an incorrect position. + CPPUNIT_ASSERT_EQUAL(text::TextContentAnchorType_AT_CHARACTER, + getProperty<text::TextContentAnchorType>(getShape(1), "AnchorType")); +} + +CPPUNIT_PLUGIN_IMPLEMENT(); + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx b/sw/source/core/doc/DocumentContentOperationsManager.cxx index 4db8ad56c16c..f19c8f6c3e03 100644 --- a/sw/source/core/doc/DocumentContentOperationsManager.cxx +++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx @@ -2911,12 +2911,6 @@ SwFlyFrameFormat* DocumentContentOperationsManager::InsertEmbObject( if (SotExchange::IsMath(aClassName)) { nId = RES_POOLFRM_FORMEL; - if (pFlyAttrSet && pFlyAttrSet->HasItem(RES_ANCHOR)) - { - // Clear the at-char anchor set in the SwFlyFrameAttrMgr ctor, so the as-char one - // set later in pFrameFormat is considered. - pFlyAttrSet->ClearItem(RES_ANCHOR); - } } } diff --git a/sw/source/core/draw/dflyobj.cxx b/sw/source/core/draw/dflyobj.cxx index 756ea9e33fdf..f794887fee77 100644 --- a/sw/source/core/draw/dflyobj.cxx +++ b/sw/source/core/draw/dflyobj.cxx @@ -397,7 +397,7 @@ void SwVirtFlyDrawObj::Rotate(const Point& rRef, long nAngle, double sn, double // RotGrfFlyFrame: Add transformation to placeholder object Size aSize; const sal_uInt16 nOldRot(SwVirtFlyDrawObj::getPossibleRotationFromFraphicFrame(aSize)); - SwFlyFrameAttrMgr aMgr(false, pShForAngle, Frmmgr_Type::NONE); + SwFlyFrameAttrMgr aMgr(false, pShForAngle, Frmmgr_Type::NONE, nullptr); aMgr.SetRotation(nOldRot, (nOldRot + static_cast<sal_uInt16>(nAngle)) % 3600, aSize); } diff --git a/sw/source/uibase/app/appenv.cxx b/sw/source/uibase/app/appenv.cxx index fc9b46af4a79..71b042b28961 100644 --- a/sw/source/uibase/app/appenv.cxx +++ b/sw/source/uibase/app/appenv.cxx @@ -395,7 +395,7 @@ void SwModule::InsertEnv( SfxRequest& rReq ) pSh->ChgCurPageDesc(*pDesc); // Insert Frame - SwFlyFrameAttrMgr aMgr(false, pSh, Frmmgr_Type::ENVELP); + SwFlyFrameAttrMgr aMgr(false, pSh, Frmmgr_Type::ENVELP, nullptr); SwFieldMgr aFieldMgr; aMgr.SetHeightSizeType(SwFrameSize::Variable); diff --git a/sw/source/uibase/frmdlg/frmmgr.cxx b/sw/source/uibase/frmdlg/frmmgr.cxx index f79d485af3f3..926a949e2f98 100644 --- a/sw/source/uibase/frmdlg/frmmgr.cxx +++ b/sw/source/uibase/frmdlg/frmmgr.cxx @@ -27,6 +27,8 @@ #include <editeng/shaditem.hxx> #include <svx/swframevalidation.hxx> #include <svx/xdef.hxx> +#include <tools/globname.hxx> +#include <comphelper/classids.hxx> #include <fmtclds.hxx> #include <wrtsh.hxx> #include <view.hxx> @@ -59,7 +61,7 @@ static sal_uInt16 aFrameMgrRange[] = { 0}; // determine frame attributes via Shell -SwFlyFrameAttrMgr::SwFlyFrameAttrMgr( bool bNew, SwWrtShell* pSh, Frmmgr_Type nType ) : +SwFlyFrameAttrMgr::SwFlyFrameAttrMgr( bool bNew, SwWrtShell* pSh, Frmmgr_Type nType, const SvGlobalName* pName ) : m_aSet( static_cast<SwAttrPool&>(pSh->GetAttrPool()), aFrameMgrRange ), m_pOwnSh( pSh ), m_bAbsPos( false ), @@ -85,7 +87,11 @@ SwFlyFrameAttrMgr::SwFlyFrameAttrMgr( bool bNew, SwWrtShell* pSh, Frmmgr_Type nT if (nType == Frmmgr_Type::GRF || nType == Frmmgr_Type::OLE) { - m_aSet.Put(SwFormatAnchor(RndStdIds::FLY_AT_CHAR)); + if (!pName || *pName != SvGlobalName( SO3_SM_CLASSID )) + { + // Default anchor for new graphics and objects is at-char, except for Math objects. + m_aSet.Put(SwFormatAnchor(RndStdIds::FLY_AT_CHAR)); + } } } else if ( nType == Frmmgr_Type::NONE ) diff --git a/sw/source/uibase/inc/frmmgr.hxx b/sw/source/uibase/inc/frmmgr.hxx index 61267e5af077..8cd1ee303a06 100644 --- a/sw/source/uibase/inc/frmmgr.hxx +++ b/sw/source/uibase/inc/frmmgr.hxx @@ -33,6 +33,7 @@ struct SvxSwFrameValidation; struct SwPosition; class SwFormatCol; +class SvGlobalName; const SwTwips DFLT_WIDTH = MM50 * 4; const SwTwips DFLT_HEIGHT = MM50; @@ -67,7 +68,7 @@ class SW_DLLPUBLIC SwFlyFrameAttrMgr SAL_DLLPRIVATE void UpdateFlyFrame_(); // post-treatment after insert or update public: - SwFlyFrameAttrMgr( bool bNew, SwWrtShell* pSh, Frmmgr_Type nType ); + SwFlyFrameAttrMgr( bool bNew, SwWrtShell* pSh, Frmmgr_Type nType, const SvGlobalName* pName ); //CopyCtor for dialogs to check the metrics SwFlyFrameAttrMgr( bool bNew, SwWrtShell *pSh, const SfxItemSet &rSet ); diff --git a/sw/source/uibase/shells/basesh.cxx b/sw/source/uibase/shells/basesh.cxx index 2253441310f0..44d78d6e5821 100644 --- a/sw/source/uibase/shells/basesh.cxx +++ b/sw/source/uibase/shells/basesh.cxx @@ -1279,7 +1279,7 @@ void SwBaseShell::Execute(SfxRequest &rReq) else if ( rSh.IsFrameSelected() ) { // Set border attributes via Frame-Manager. - SwFlyFrameAttrMgr aMgr( false, &rSh, Frmmgr_Type::NONE ); + SwFlyFrameAttrMgr aMgr( false, &rSh, Frmmgr_Type::NONE, nullptr ); aMgr.SetAttrSet( *pArgs ); aMgr.UpdateFlyFrame(); } @@ -1311,7 +1311,7 @@ void SwBaseShell::Execute(SfxRequest &rReq) else if ( rSh.IsFrameSelected() ) { // Set border attributes via Frame-Manager. - SwFlyFrameAttrMgr aMgr( false, &rSh, Frmmgr_Type::NONE ); + SwFlyFrameAttrMgr aMgr( false, &rSh, Frmmgr_Type::NONE, nullptr ); aMgr.SetAttrSet(*pArgs); aMgr.UpdateFlyFrame(); } @@ -1508,7 +1508,7 @@ void SwBaseShell::GetState( SfxItemSet &rSet ) } else if( rSh.IsFrameSelected() ) { - SwFlyFrameAttrMgr aMgr( false, &rSh, Frmmgr_Type::NONE ); + SwFlyFrameAttrMgr aMgr( false, &rSh, Frmmgr_Type::NONE, nullptr ); aSet.Put( aMgr.GetAttrSet() ); } else @@ -2486,7 +2486,7 @@ void SwBaseShell::GetBorderState(SfxItemSet &rSet) } else if ( rSh.IsFrameSelected() ) { - SwFlyFrameAttrMgr aMgr( false, &rSh, Frmmgr_Type::NONE ); + SwFlyFrameAttrMgr aMgr( false, &rSh, Frmmgr_Type::NONE, nullptr ); rSet.Put( aMgr.GetAttrSet() ); bPrepare = false; } @@ -2579,7 +2579,7 @@ void SwBaseShell::ExecDlg(SfxRequest &rReq) else if ( rSh.IsFrameSelected() ) { // Set border attributes via Frame-Manager - SwFlyFrameAttrMgr aMgr( false, &rSh, Frmmgr_Type::NONE ); + SwFlyFrameAttrMgr aMgr( false, &rSh, Frmmgr_Type::NONE, nullptr ); aSet.Put( aMgr.GetAttrSet() ); SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); diff --git a/sw/source/uibase/shells/frmsh.cxx b/sw/source/uibase/shells/frmsh.cxx index 186a6d337801..730009e1cf92 100644 --- a/sw/source/uibase/shells/frmsh.cxx +++ b/sw/source/uibase/shells/frmsh.cxx @@ -276,7 +276,7 @@ void SwFrameShell::Execute(SfxRequest &rReq) return; } - SwFlyFrameAttrMgr aMgr( false, &rSh, Frmmgr_Type::NONE ); + SwFlyFrameAttrMgr aMgr( false, &rSh, Frmmgr_Type::NONE, nullptr ); bool bUpdateMgr = true; bool bCopyToFormat = false; switch ( nSlot ) @@ -749,7 +749,7 @@ void SwFrameShell::GetState(SfxItemSet& rSet) bProtect |= bParentCntProt; const FrameTypeFlags eFrameType = rSh.GetFrameType(nullptr,true); - SwFlyFrameAttrMgr aMgr( false, &rSh, Frmmgr_Type::NONE ); + SwFlyFrameAttrMgr aMgr( false, &rSh, Frmmgr_Type::NONE, nullptr ); SfxWhichIter aIter( rSet ); sal_uInt16 nWhich = aIter.FirstWhich(); diff --git a/sw/source/uibase/shells/grfsh.cxx b/sw/source/uibase/shells/grfsh.cxx index e9808d6be430..f48e3d79eb1c 100644 --- a/sw/source/uibase/shells/grfsh.cxx +++ b/sw/source/uibase/shells/grfsh.cxx @@ -251,7 +251,7 @@ void SwGrfShell::Execute(SfxRequest &rReq) case FN_DRAW_WRAP_DLG: { SwFlyFrameAttrMgr aMgr( false, &rSh, rSh.IsFrameSelected() ? - Frmmgr_Type::NONE : Frmmgr_Type::GRF); + Frmmgr_Type::NONE : Frmmgr_Type::GRF, nullptr); const SwViewOption* pVOpt = rSh.GetViewOptions(); SwViewOption aUsrPref( *pVOpt ); @@ -932,7 +932,7 @@ void SwGrfShell::ExecuteRotation(SfxRequest const &rReq) SfxItemSet aSet( rShell.GetAttrPool(), svl::Items<RES_GRFATR_ROTATION, RES_GRFATR_ROTATION>{} ); rShell.GetCurAttr( aSet ); const SwRotationGrf& rRotation = aSet.Get(RES_GRFATR_ROTATION); - SwFlyFrameAttrMgr aMgr(false, &rShell, rShell.IsFrameSelected() ? Frmmgr_Type::NONE : Frmmgr_Type::GRF); + SwFlyFrameAttrMgr aMgr(false, &rShell, rShell.IsFrameSelected() ? Frmmgr_Type::NONE : Frmmgr_Type::GRF, nullptr); // RotGrfFlyFrame: Possible rotation change here, SwFlyFrameAttrMgr aMgr is available if (rReq.GetSlot() == SID_ROTATE_GRAPHIC_RESET) diff --git a/sw/source/uibase/shells/textsh.cxx b/sw/source/uibase/shells/textsh.cxx index f2e3fd0b6cc3..85831dc92488 100644 --- a/sw/source/uibase/shells/textsh.cxx +++ b/sw/source/uibase/shells/textsh.cxx @@ -403,7 +403,7 @@ void SwTextShell::ExecInsert(SfxRequest &rReq) Size aSize(16 * MM50, 8 * MM50); GetShell().LockPaint(); GetShell().StartAllAction(); - SwFlyFrameAttrMgr aMgr( true, GetShellPtr(), Frmmgr_Type::TEXT ); + SwFlyFrameAttrMgr aMgr( true, GetShellPtr(), Frmmgr_Type::TEXT, nullptr ); if(nCols > 1) { SwFormatCol aCol; @@ -434,7 +434,7 @@ void SwTextShell::ExecInsert(SfxRequest &rReq) } // Create new border - SwFlyFrameAttrMgr aMgr( true, GetShellPtr(), Frmmgr_Type::TEXT ); + SwFlyFrameAttrMgr aMgr( true, GetShellPtr(), Frmmgr_Type::TEXT, nullptr ); if(pArgs) { Size aSize(aMgr.GetSize()); diff --git a/sw/source/uibase/uiview/view2.cxx b/sw/source/uibase/uiview/view2.cxx index 72481f9a608b..6245bf7f4782 100644 --- a/sw/source/uibase/uiview/view2.cxx +++ b/sw/source/uibase/uiview/view2.cxx @@ -242,7 +242,7 @@ ErrCode SwView::InsertGraphic( const OUString &rPath, const OUString &rFilter, } } - SwFlyFrameAttrMgr aFrameManager( true, GetWrtShellPtr(), Frmmgr_Type::GRF ); + SwFlyFrameAttrMgr aFrameManager( true, GetWrtShellPtr(), Frmmgr_Type::GRF, nullptr ); SwWrtShell& rShell = GetWrtShell(); // #i123922# determine if we really want to insert or replace the graphic at a selected object @@ -1926,7 +1926,7 @@ void SwView::InsFrameMode(sal_uInt16 nCols) { if ( m_pWrtShell->HasWholeTabSelection() ) { - SwFlyFrameAttrMgr aMgr( true, m_pWrtShell.get(), Frmmgr_Type::TEXT ); + SwFlyFrameAttrMgr aMgr( true, m_pWrtShell.get(), Frmmgr_Type::TEXT, nullptr ); const SwFrameFormat &rPageFormat = m_pWrtShell->GetPageDesc(m_pWrtShell->GetCurPageDesc()).GetMaster(); diff --git a/sw/source/uibase/wrtsh/wrtsh1.cxx b/sw/source/uibase/wrtsh/wrtsh1.cxx index 7eb8e17f95bb..0dbb7aaf0796 100644 --- a/sw/source/uibase/wrtsh/wrtsh1.cxx +++ b/sw/source/uibase/wrtsh/wrtsh1.cxx @@ -287,7 +287,7 @@ void SwWrtShell::Insert( const OUString &rPath, const OUString &rFilter, if ( !pFrameMgr ) { bOwnMgr = true; - pFrameMgr = new SwFlyFrameAttrMgr( true, this, Frmmgr_Type::GRF ); + pFrameMgr = new SwFlyFrameAttrMgr( true, this, Frmmgr_Type::GRF, nullptr ); // CAUTION // GetAttrSet makes an adjustment @@ -523,7 +523,14 @@ bool SwWrtShell::InsertOleObject( const svt::EmbeddedObjectRef& xRef, SwFlyFrame EnterSelFrameMode(); - SwFlyFrameAttrMgr aFrameMgr( true, this, Frmmgr_Type::OLE ); + const SvGlobalName* pName = nullptr; + SvGlobalName aObjClsId; + if (xRef.is()) + { + aObjClsId = SvGlobalName(xRef.GetObject()->getClassID()); + pName = &aObjClsId; + } + SwFlyFrameAttrMgr aFrameMgr( true, this, Frmmgr_Type::OLE, pName ); aFrameMgr.SetHeightSizeType(SwFrameSize::Fixed); SwRect aBound; diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 3f3ce4585b9f..a52151a60c0e 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -2297,11 +2297,11 @@ void DomainMapper_Impl::appendStarMath( const Value& val ) uno::makeAny( sal_Int32(size.Width()))); xStarMathProperties->setPropertyValue(getPropertyName( PROP_HEIGHT ), uno::makeAny( sal_Int32(size.Height()))); + xStarMathProperties->setPropertyValue(getPropertyName(PROP_ANCHOR_TYPE), + uno::makeAny(text::TextContentAnchorType_AS_CHARACTER)); // mimic the treatment of graphics here... it seems anchoring as character // gives a better ( visually ) result appendTextContent(xStarMath, uno::Sequence<beans::PropertyValue>()); - xStarMathProperties->setPropertyValue(getPropertyName(PROP_ANCHOR_TYPE), - uno::makeAny(text::TextContentAnchorType_AS_CHARACTER)); } catch( const uno::Exception& ) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits