summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-02-09 15:10:53 +0000
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-02-13 08:26:36 +0000
commitafeeed5235bb796ce3d0a74166957d3799f59b39 (patch)
tree00c325d2e21bc1b2a03f83585594dc08e177251c
parent0d8746c091ce3e70340c431da8d35d453d2b3b2c (diff)
Resolves: tdf#66237 set layout manager the way it used to
model Frame::setLayoutManager after the Frame::impl_setPropertyValue handler for FRAME_PROPHANDLE_LAYOUTMANAGER which used to be used before commit b248624126c271c88381d3dad6e04fc954f65779 Date: Fri Mar 22 09:24:15 2013 +0200 fdo#46808, Convert frame::Frame to new style i.e. - Reference< XPropertySet > xFrameProps( m_xFrame, UNO_QUERY_THROW ); - xFrameProps->setPropertyValue( OUString( "LayoutManager" ), makeAny(Reference< XLayoutManager >()) ); + m_xFrame->setLayoutManager( Reference< XLayoutManager >() ); Change-Id: I00f1a2cb8e4fafc6d484634619cbeaf58c603d87 (cherry picked from commit 6851074c8a515ec5a7856d4b744e3425c8829a29) Reviewed-on: https://gerrit.libreoffice.org/34095 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
-rw-r--r--framework/source/services/frame.cxx13
1 files changed, 12 insertions, 1 deletions
diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx
index 279e2616979c..38f740d297b9 100644
--- a/framework/source/services/frame.cxx
+++ b/framework/source/services/frame.cxx
@@ -1828,7 +1828,18 @@ void SAL_CALL Frame::setLayoutManager(const css::uno::Reference<css::uno::XInter
{
checkDisposed();
SolarMutexGuard g;
- m_xLayoutManager.set(p1, css::uno::UNO_QUERY);
+
+ css::uno::Reference<css::frame::XLayoutManager2> xOldLayoutManager = m_xLayoutManager;
+ css::uno::Reference<css::frame::XLayoutManager2> xNewLayoutManager(p1, css::uno::UNO_QUERY);
+
+ if (xOldLayoutManager != xNewLayoutManager)
+ {
+ m_xLayoutManager = xNewLayoutManager;
+ if (xOldLayoutManager.is())
+ disableLayoutManager(xOldLayoutManager);
+ if (xNewLayoutManager.is())
+ lcl_enableLayoutManager(xNewLayoutManager, this);
+ }
}
css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL Frame::getPropertySetInfo()