Kaydet (Commit) 3814952f authored tarafından Caolán McNamara's avatar Caolán McNamara

support XSystemDependentWindowPeer for all toplevel windows

Change-Id: Id79fba6956e2a97a10dcec1cab883d3665ef1628
Reviewed-on: https://gerrit.libreoffice.org/41806Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst e66c9aa3
......@@ -37,9 +37,6 @@ typedef ::cppu::ImplHelper1 < css::awt::XSystemDependentWindowPeer
class TOOLKIT_DLLPUBLIC VCLXTopWindow_Base :public VCLXTopWindow_XBase
,public VCLXTopWindow_SBase
{
private:
const bool m_bWHWND;
protected:
css::uno::Reference< css::awt::XMenuBar> mxMenuBar;
......@@ -47,7 +44,7 @@ protected:
virtual vcl::Window* GetWindowImpl() = 0;
virtual ::comphelper::OInterfaceContainerHelper2& GetTopWindowListenersImpl() = 0;
VCLXTopWindow_Base( const bool _bSupportSystemWindowPeer );
VCLXTopWindow_Base();
public:
virtual ~VCLXTopWindow_Base();
......@@ -88,7 +85,7 @@ protected:
virtual ::comphelper::OInterfaceContainerHelper2& GetTopWindowListenersImpl() override;
public:
VCLXTopWindow(bool bWHWND = false);
VCLXTopWindow();
virtual ~VCLXTopWindow() override;
// css::uno::XInterface
......
......@@ -1163,7 +1163,7 @@ vcl::Window* VCLXToolkit::ImplCreateWindow( VCLXWindow** ppNewComp,
pNewWindow = VclPtr<WorkWindow>::Create( pParent, nWinBits );
}
*ppNewComp = new VCLXTopWindow( pNewWindow->GetType() == WindowType::WORKWINDOW );
*ppNewComp = new VCLXTopWindow();
}
else if ( rDescriptor.Type == css::awt::WindowClass_CONTAINER )
{
......@@ -1406,7 +1406,7 @@ css::uno::Reference< css::awt::XWindowPeer > VCLXToolkit::createSystemChild( con
css::uno::Reference< css::awt::XWindowPeer > xPeer;
if ( pChildWindow )
{
VCLXTopWindow* pPeer = new VCLXTopWindow(true);
VCLXTopWindow* pPeer = new VCLXTopWindow;
SolarMutexGuard aGuard;
pPeer->SetWindow( pChildWindow );
xPeer = pPeer;
......
......@@ -49,8 +49,7 @@ using ::com::sun::star::uno::Type;
using ::com::sun::star::uno::Any;
using ::com::sun::star::lang::IndexOutOfBoundsException;
VCLXTopWindow_Base::VCLXTopWindow_Base( const bool _bSupportSystemWindowPeer )
:m_bWHWND( _bSupportSystemWindowPeer )
VCLXTopWindow_Base::VCLXTopWindow_Base()
{
}
......@@ -62,8 +61,7 @@ Any VCLXTopWindow_Base::queryInterface( const Type & rType )
{
css::uno::Any aRet( VCLXTopWindow_XBase::queryInterface( rType ) );
// do not expose XSystemDependentWindowPeer if we do not have a system window handle
if ( !aRet.hasValue() && m_bWHWND )
if (!aRet.hasValue())
aRet = VCLXTopWindow_SBase::queryInterface( rType );
return aRet;
......@@ -72,8 +70,7 @@ Any VCLXTopWindow_Base::queryInterface( const Type & rType )
Sequence< Type > VCLXTopWindow_Base::getTypes()
{
Sequence< Type > aTypes( VCLXTopWindow_XBase::getTypes() );
if ( m_bWHWND )
aTypes = ::comphelper::concatSequences( aTypes, VCLXTopWindow_SBase::getTypes() );
aTypes = ::comphelper::concatSequences( aTypes, VCLXTopWindow_SBase::getTypes() );
return aTypes;
}
......@@ -249,8 +246,7 @@ void VCLXTopWindow::ImplGetPropertyIds( std::vector< sal_uInt16 > &rIds )
VCLXContainer::ImplGetPropertyIds( rIds );
}
VCLXTopWindow::VCLXTopWindow(bool bWHWND)
: VCLXTopWindow_Base( bWHWND )
VCLXTopWindow::VCLXTopWindow()
{
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment