summaryrefslogtreecommitdiff
path: root/toolkit/source/controls
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/source/controls')
-rw-r--r--toolkit/source/controls/svmedit.cxx4
-rw-r--r--toolkit/source/controls/unocontrol.cxx27
-rw-r--r--toolkit/source/controls/unocontrolcontainer.cxx2
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 );