diff options
Diffstat (limited to 'toolkit/source/controls')
-rw-r--r-- | toolkit/source/controls/svmedit.cxx | 4 | ||||
-rw-r--r-- | toolkit/source/controls/unocontrol.cxx | 27 | ||||
-rw-r--r-- | toolkit/source/controls/unocontrolcontainer.cxx | 2 |
3 files changed, 20 insertions, 13 deletions
diff --git a/toolkit/source/controls/svmedit.cxx b/toolkit/source/controls/svmedit.cxx index 383f2280412e..1bc51155f7bf 100644 --- a/toolkit/source/controls/svmedit.cxx +++ b/toolkit/source/controls/svmedit.cxx @@ -26,9 +26,9 @@ MultiLineEdit::MultiLineEdit(vcl::Window* pParent, WinBits nWinStyle) } // virtual -css::uno::Reference<css::awt::XWindowPeer> MultiLineEdit::GetComponentInterface(bool bCreate) +css::uno::Reference<css::awt::XVclWindowPeer> MultiLineEdit::GetComponentInterface(bool bCreate) { - css::uno::Reference<css::awt::XWindowPeer> xPeer( + css::uno::Reference<css::awt::XVclWindowPeer> xPeer( VclMultiLineEdit::GetComponentInterface(false)); if (!xPeer.is() && bCreate) { diff --git a/toolkit/source/controls/unocontrol.cxx b/toolkit/source/controls/unocontrol.cxx index a3d0a251c382..217d8f94185d 100644 --- a/toolkit/source/controls/unocontrol.cxx +++ b/toolkit/source/controls/unocontrol.cxx @@ -157,13 +157,13 @@ OUString UnoControl::GetComponentServiceName() const return OUString(); } -Reference< XWindowPeer > UnoControl::ImplGetCompatiblePeer() +Reference< XVclWindowPeer > UnoControl::ImplGetCompatiblePeer() { DBG_ASSERT( !mbCreatingCompatiblePeer, "ImplGetCompatiblePeer - recursive?" ); mbCreatingCompatiblePeer = true; - Reference< XWindowPeer > xCompatiblePeer = getPeer(); + Reference< XVclWindowPeer > xCompatiblePeer = getVclWindowPeer(); if ( !xCompatiblePeer.is() ) { @@ -172,7 +172,7 @@ Reference< XWindowPeer > UnoControl::ImplGetCompatiblePeer() if( bVis ) maComponentInfos.bVisible = false; - Reference< XWindowPeer > xCurrentPeer = getPeer(); + Reference< XVclWindowPeer > xCurrentPeer = getVclWindowPeer(); setPeer( nullptr ); // queryInterface ourself, to allow aggregation @@ -196,7 +196,7 @@ Reference< XWindowPeer > UnoControl::ImplGetCompatiblePeer() mbCreatingCompatiblePeer = false; throw; } - xCompatiblePeer = getPeer(); + xCompatiblePeer = getVclWindowPeer(); setPeer( xCurrentPeer ); if ( xCompatiblePeer.is() && mxGraphics.is() ) @@ -345,13 +345,13 @@ UnoControl::DisposeAccessibleContext(Reference<XComponent> const& xContextComp) void UnoControl::dispose( ) { - Reference< XWindowPeer > xPeer; + Reference< XVclWindowPeer > xPeer; Reference<XComponent> xAccessibleComp; { ::osl::MutexGuard aGuard( GetMutex() ); if( mbDisposePeer ) { - xPeer = mxPeer; + xPeer = mxVclWindowPeer; } setPeer( nullptr ); xAccessibleComp.set(maAccessibleContext, UNO_QUERY); @@ -619,8 +619,7 @@ void UnoControl::ImplModelPropertiesChanged( const Sequence< PropertyChangeEvent // Doesn't work for Container! getPeer()->dispose(); - mxPeer.clear(); - mxVclWindowPeer = nullptr; + mxVclWindowPeer.clear(); mbRefreshingPeer = true; Reference< XWindowPeer > xP( xParent, UNO_QUERY ); xThis->createPeer( Reference< XToolkit > (), xP ); @@ -1278,7 +1277,9 @@ void UnoControl::createPeer( const Reference< XToolkit >& rxToolkit, const Refer PrepareWindowDescriptor(aDescr); // create the peer - setPeer( xToolkit->createWindow( aDescr ) ); + Reference<XWindowPeer> xTemp = xToolkit->createWindow( aDescr ); + mxVclWindowPeer.set(xTemp, UNO_QUERY); + assert(mxVclWindowPeer); // release the mutex guard (and work with copies of our members) // this is necessary as our peer may lock the SolarMutex (actually, all currently known peers do), so calling @@ -1344,7 +1345,13 @@ void UnoControl::createPeer( const Reference< XToolkit >& rxToolkit, const Refer Reference< XWindowPeer > UnoControl::getPeer() { ::osl::MutexGuard aGuard( GetMutex() ); - return mxPeer; + return mxVclWindowPeer; +} + +Reference< XVclWindowPeer > UnoControl::getVclWindowPeer() +{ + ::osl::MutexGuard aGuard( GetMutex() ); + return mxVclWindowPeer; } sal_Bool UnoControl::setModel( const Reference< XControlModel >& rxModel ) diff --git a/toolkit/source/controls/unocontrolcontainer.cxx b/toolkit/source/controls/unocontrolcontainer.cxx index feb117b4cd3c..1610f36629e1 100644 --- a/toolkit/source/controls/unocontrolcontainer.cxx +++ b/toolkit/source/controls/unocontrolcontainer.cxx @@ -369,7 +369,7 @@ UnoControlContainer::UnoControlContainer() mpControls.reset(new UnoControlHolderList); } -UnoControlContainer::UnoControlContainer(const uno::Reference< awt::XWindowPeer >& xP ) +UnoControlContainer::UnoControlContainer(const uno::Reference< awt::XVclWindowPeer >& xP ) :maCListeners( *this ) { setPeer( xP ); |