[Libreoffice-commits] core.git: include/tools include/vcl vcl/inc vcl/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Thu Sep 23 11:03:10 UTC 2021


 include/tools/wintypes.hxx   |    2 --
 include/vcl/svapp.hxx        |    2 +-
 vcl/inc/svdata.hxx           |    4 ++--
 vcl/source/app/svapp.cxx     |    4 ++--
 vcl/source/app/svdata.cxx    |    8 ++++----
 vcl/source/gdi/virdev.cxx    |    2 +-
 vcl/source/window/brdwin.cxx |    2 +-
 vcl/source/window/window.cxx |    6 +++++-
 8 files changed, 16 insertions(+), 14 deletions(-)

New commits:
commit 238b6cf0ff0d66d57bea9e8dc38d93caf4563124
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Sep 23 10:21:42 2021 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Thu Sep 23 13:02:34 2021 +0200

    WB_DEFAULTWIN should be sufficient to flag that no icon is required
    
    Change-Id: Ibb5d8331d5d47e2b5c163c2797b2e7b5cee4b285
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122517
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/include/tools/wintypes.hxx b/include/tools/wintypes.hxx
index 1bc51788a572..fcccd9a0d0fa 100644
--- a/include/tools/wintypes.hxx
+++ b/include/tools/wintypes.hxx
@@ -229,8 +229,6 @@ WinBits const WB_NOINITIALSELECTION =   SAL_CONST_INT64(0x001000000000);
 WinBits const WB_HIDESELECTION =        SAL_CONST_INT64(0x002000000000);
 // DO NOT USE: 0x008000000000, that's WB_SYSTEMCHILDWINDOW
 
-// tdf#144624: special bit used to skip assigning icon to virtual window
-WinBits const WB_NOICON =               SAL_CONST_INT64(0x200000000000);
 
 enum class WindowAlign { Left, Top, Right, Bottom };
 
diff --git a/include/vcl/svapp.hxx b/include/vcl/svapp.hxx
index e7b3c3b08433..519aad8bb27b 100644
--- a/include/vcl/svapp.hxx
+++ b/include/vcl/svapp.hxx
@@ -824,7 +824,7 @@ public:
 
      @see GetFocusWindow
     */
-    static OutputDevice*        GetDefaultDevice(bool bUseIcon = true);
+    static OutputDevice*        GetDefaultDevice();
 
     /** Get the first top-level window of the application.
 
diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx
index cadc35c1c067..d428b5b301a0 100644
--- a/vcl/inc/svdata.hxx
+++ b/vcl/inc/svdata.hxx
@@ -428,8 +428,8 @@ css::uno::Reference<css::i18n::XCharacterClassification> const& ImplGetCharClass
 
 void        ImplDeInitSVData();
 VCL_PLUGIN_PUBLIC basegfx::SystemDependentDataManager& ImplGetSystemDependentDataManager();
-VCL_PLUGIN_PUBLIC vcl::Window* ImplGetDefaultWindow(bool bUseIcon = true);
-vcl::Window* ImplGetDefaultContextWindow(bool bUseIcon = true);
+VCL_PLUGIN_PUBLIC vcl::Window* ImplGetDefaultWindow();
+vcl::Window* ImplGetDefaultContextWindow();
 const std::locale& ImplGetResLocale();
 VCL_PLUGIN_PUBLIC OUString VclResId(TranslateId sContextAndId);
 DockingManager*     ImplGetDockingManager();
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
index 515c97ff93ba..66c030dd5501 100644
--- a/vcl/source/app/svapp.cxx
+++ b/vcl/source/app/svapp.cxx
@@ -1066,9 +1066,9 @@ vcl::Window* Application::GetFocusWindow()
     return ImplGetSVData()->mpWinData->mpFocusWin;
 }
 
-OutputDevice* Application::GetDefaultDevice(bool bUseIcon)
+OutputDevice* Application::GetDefaultDevice()
 {
-    return ImplGetDefaultWindow(bUseIcon)->GetOutDev();
+    return ImplGetDefaultWindow()->GetOutDev();
 }
 
 vcl::Window* Application::GetFirstTopLevelWindow()
diff --git a/vcl/source/app/svdata.cxx b/vcl/source/app/svdata.cxx
index c8b0c150297a..f91e1fe67fa9 100644
--- a/vcl/source/app/svdata.cxx
+++ b/vcl/source/app/svdata.cxx
@@ -206,17 +206,17 @@ basegfx::SystemDependentDataManager& ImplGetSystemDependentDataManager()
 }
 
 /// Returns either the application window, or the default GL context window
-vcl::Window* ImplGetDefaultWindow(bool bUseIcon)
+vcl::Window* ImplGetDefaultWindow()
 {
     ImplSVData* pSVData = ImplGetSVData();
     if (pSVData->maFrameData.mpAppWin)
         return pSVData->maFrameData.mpAppWin;
     else
-        return ImplGetDefaultContextWindow(bUseIcon);
+        return ImplGetDefaultContextWindow();
 }
 
 /// returns the default window created to hold the persistent VCL GL context.
-vcl::Window *ImplGetDefaultContextWindow(bool bUseIcon)
+vcl::Window *ImplGetDefaultContextWindow()
 {
     ImplSVData* pSVData = ImplGetSVData();
 
@@ -231,7 +231,7 @@ vcl::Window *ImplGetDefaultContextWindow(bool bUseIcon)
             {
                 SAL_INFO( "vcl", "ImplGetDefaultWindow(): No AppWindow" );
 
-                pSVData->mpDefaultWin = VclPtr<WorkWindow>::Create( nullptr, bUseIcon ? WB_DEFAULTWIN : WB_DEFAULTWIN | WB_NOICON );
+                pSVData->mpDefaultWin = VclPtr<WorkWindow>::Create(nullptr, WB_DEFAULTWIN);
                 pSVData->mpDefaultWin->SetText( "VCL ImplGetDefaultWindow" );
             }
             catch (const css::uno::Exception&)
diff --git a/vcl/source/gdi/virdev.cxx b/vcl/source/gdi/virdev.cxx
index c539f3d3dc2c..77f364aded4d 100644
--- a/vcl/source/gdi/virdev.cxx
+++ b/vcl/source/gdi/virdev.cxx
@@ -205,7 +205,7 @@ VirtualDevice::VirtualDevice(const OutputDevice* pCompDev, DeviceFormat eFormat,
                             << ", " << static_cast<int>(eAlphaFormat)
                             << ", " << static_cast<int>(eOutDevType) << " )" );
 
-    ImplInitVirDev(pCompDev ? pCompDev : Application::GetDefaultDevice(false), 0, 0);
+    ImplInitVirDev(pCompDev ? pCompDev : Application::GetDefaultDevice(), 0, 0);
 }
 
 VirtualDevice::VirtualDevice(const SystemGraphicsData& rData, const Size &rSize,
diff --git a/vcl/source/window/brdwin.cxx b/vcl/source/window/brdwin.cxx
index 7cd7bb4eaaf1..95d508ce3597 100644
--- a/vcl/source/window/brdwin.cxx
+++ b/vcl/source/window/brdwin.cxx
@@ -1499,7 +1499,7 @@ void ImplBorderWindow::ImplInit( vcl::Window* pParent,
 {
     // remove all unwanted WindowBits
     WinBits nOrgStyle = nStyle;
-    WinBits nTestStyle = (WB_MOVEABLE | WB_SIZEABLE | WB_CLOSEABLE | WB_STANDALONE | WB_DIALOGCONTROL | WB_NODIALOGCONTROL | WB_SYSTEMFLOATWIN | WB_INTROWIN | WB_DEFAULTWIN | WB_TOOLTIPWIN | WB_NOSHADOW | WB_OWNERDRAWDECORATION | WB_SYSTEMCHILDWINDOW  | WB_POPUP | WB_NOICON);
+    WinBits nTestStyle = (WB_MOVEABLE | WB_SIZEABLE | WB_CLOSEABLE | WB_STANDALONE | WB_DIALOGCONTROL | WB_NODIALOGCONTROL | WB_SYSTEMFLOATWIN | WB_INTROWIN | WB_DEFAULTWIN | WB_TOOLTIPWIN | WB_NOSHADOW | WB_OWNERDRAWDECORATION | WB_SYSTEMCHILDWINDOW  | WB_POPUP);
     if ( nTypeStyle & BorderWindowStyle::App )
         nTestStyle |= WB_APP;
     nStyle &= nTestStyle;
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index e6ed7b3cf8b2..32f3231622fb 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -1032,7 +1032,11 @@ void Window::ImplInit( vcl::Window* pParent, WinBits nStyle, SystemParentData* p
                 break;
         }
 
-        if( nStyle & WB_NOICON )
+        // 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;


More information about the Libreoffice-commits mailing list