diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-02-09 15:10:53 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2017-02-09 15:28:43 +0000 |
commit | 6851074c8a515ec5a7856d4b744e3425c8829a29 (patch) | |
tree | 07a4c1818af22fb6d19a8862a311e15f97aeeda1 | |
parent | d48b805794a6317e13826d52bbeaa37576ac57bb (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
-rw-r--r-- | framework/source/services/frame.cxx | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx index f88c631fd7e4..de2c2a334e2f 100644 --- a/framework/source/services/frame.cxx +++ b/framework/source/services/frame.cxx @@ -1822,7 +1822,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() |