vcl/win/gdi/salnativewidgets-luna.cxx |   15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

New commits:
commit 4332c58eca7df7a30e8f11b9193d7d0727c2a36c
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Tue Jan 31 10:49:51 2023 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Tue Jan 31 16:49:11 2023 +0000

    tdf#153273 bodge dark scrollbar into drop downs
    
    Change-Id: I9c53b931feb7f720f86edfbb6ae88ff5ee436cef
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146386
    Tested-by: Caolán McNamara <caol...@redhat.com>
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/win/gdi/salnativewidgets-luna.cxx 
b/vcl/win/gdi/salnativewidgets-luna.cxx
index 8631cdc950fe..1cd6245658d6 100644
--- a/vcl/win/gdi/salnativewidgets-luna.cxx
+++ b/vcl/win/gdi/salnativewidgets-luna.cxx
@@ -1172,7 +1172,20 @@ bool WinSalGraphics::drawNativeControl( ControlType 
nType,
             hTheme = getThemeHandle(mhWnd, L"Button", mWinSalGraphicsImplBase);
             break;
         case ControlType::Scrollbar:
-            hTheme = getThemeHandle(mhWnd, L"Scrollbar", 
mWinSalGraphicsImplBase);
+            if (bUseDarkMode)
+            {
+                // tdf#153273 undo the earlier SetWindowTheme, and use an 
explicit Explorer::Scrollbar
+                // a) with "Scrollbar" and SetWindowTheme(... "Explorer" ...) 
then scrollbars in dialog
+                // and main windows are dark, but dropdowns are light
+                // b) with "Explorer::Scrollbar" and SetWindowTheme(... 
"Explorer" ...) then scrollbars
+                // in dropdowns are dark, but scrollbars in dialogs and main 
windows are sort of "extra
+                // dark"
+                // c) with "Explorer::Scrollbar" and no SetWindowTheme both 
cases are dark
+                SetWindowTheme(mhWnd, nullptr, nullptr);
+                hTheme = getThemeHandle(mhWnd, L"Explorer::Scrollbar", 
mWinSalGraphicsImplBase);
+            }
+            else
+                hTheme = getThemeHandle(mhWnd, L"Scrollbar", 
mWinSalGraphicsImplBase);
             break;
         case ControlType::Combobox:
             if( nPart == ControlPart::Entire )

Reply via email to