summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/salframe.hxx4
-rw-r--r--vcl/source/app/svdata.cxx2
-rw-r--r--vcl/source/window/window.cxx7
-rw-r--r--vcl/unx/generic/window/salframe.cxx2
4 files changed, 12 insertions, 3 deletions
diff --git a/vcl/inc/salframe.hxx b/vcl/inc/salframe.hxx
index 6525ab14b1c9..ac8840b437c7 100644
--- a/vcl/inc/salframe.hxx
+++ b/vcl/inc/salframe.hxx
@@ -80,6 +80,8 @@ enum class SalFrameStyleFlags
INTRO = 0x00000100,
// partial fullscreen: fullscreen on one monitor of a multimonitor display
PARTIAL_FULLSCREEN = 0x00800000,
+ // tdf#144624: don't set icon
+ NOICON = 0x01000000,
// system child window inside another SalFrame
SYSTEMCHILD = 0x08000000,
// plugged system child window
@@ -91,7 +93,7 @@ enum class SalFrameStyleFlags
};
namespace o3tl {
- template<> struct typed_flags<SalFrameStyleFlags> : is_typed_flags<SalFrameStyleFlags, 0x788001ff> {};
+ template<> struct typed_flags<SalFrameStyleFlags> : is_typed_flags<SalFrameStyleFlags, 0x798001ff> {};
};
// Extended frame style (sal equivalent to extended WinBits)
diff --git a/vcl/source/app/svdata.cxx b/vcl/source/app/svdata.cxx
index ba5fce26278a..1d1375b24d7b 100644
--- a/vcl/source/app/svdata.cxx
+++ b/vcl/source/app/svdata.cxx
@@ -232,7 +232,7 @@ vcl::Window *ImplGetDefaultContextWindow()
{
SAL_INFO( "vcl", "ImplGetDefaultWindow(): No AppWindow" );
- pSVData->mpDefaultWin = VclPtr<WorkWindow>::Create( nullptr, WB_DEFAULTWIN );
+ pSVData->mpDefaultWin = VclPtr<WorkWindow>::Create(nullptr, WB_DEFAULTWIN);
pSVData->mpDefaultWin->SetText( "VCL ImplGetDefaultWindow" );
}
catch (const css::uno::Exception&)
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index e08e31763566..ae9df74d8faa 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -1032,6 +1032,13 @@ void Window::ImplInit( vcl::Window* pParent, WinBits nStyle, SystemParentData* p
break;
}
+ // tdf#144624 for the DefaultWindow, which is never visible, don't
+ // create an icon for it so construction of a DefaultWindow cannot
+ // trigger creation of a VirtualDevice which itself requires a
+ // DefaultWindow to exist
+ if( nStyle & WB_DEFAULTWIN )
+ nFrameStyle |= SalFrameStyleFlags::NOICON;
+
SalFrame* pParentFrame = nullptr;
if ( pParent )
pParentFrame = pParent->mpWindowImpl->mpFrame;
diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx
index 6e1c392706a9..5195dbde4103 100644
--- a/vcl/unx/generic/window/salframe.cxx
+++ b/vcl/unx/generic/window/salframe.cxx
@@ -561,7 +561,7 @@ void X11SalFrame::Init( SalFrameStyleFlags nSalFrameStyle, SalX11Screen nXScreen
if( IsOverrideRedirect() )
Attributes.override_redirect = True;
// default icon
- if( !(nStyle_ & SalFrameStyleFlags::INTRO) )
+ if( !(nStyle_ & SalFrameStyleFlags::INTRO) && !(nStyle_ & SalFrameStyleFlags::NOICON))
{
bool bOk=false;
try