From 64b8057a6cd2fbaed6167e2be912914e9569796c Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Tue, 31 Jan 2023 10:22:35 +0000 Subject: tdf#153287 rollover in dark mode with "Explorer" is incongruous MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Using "CFD" gives a brighter border with rollover, but no notable focus state when focused. Try a combination here to get something decent. Change-Id: If7844cb0f1e88410959aa622b0271c3f3954230e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146384 Tested-by: Jenkins Reviewed-by: Caolán McNamara --- vcl/win/gdi/salnativewidgets-luna.cxx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/vcl/win/gdi/salnativewidgets-luna.cxx b/vcl/win/gdi/salnativewidgets-luna.cxx index 1c177a1b2a97..8631cdc950fe 100644 --- a/vcl/win/gdi/salnativewidgets-luna.cxx +++ b/vcl/win/gdi/salnativewidgets-luna.cxx @@ -1176,7 +1176,11 @@ bool WinSalGraphics::drawNativeControl( ControlType nType, break; case ControlType::Combobox: if( nPart == ControlPart::Entire ) + { + if (bUseDarkMode && !(nState & ControlState::FOCUSED)) + SetWindowTheme(mhWnd, L"CFD", nullptr); hTheme = getThemeHandle(mhWnd, L"Edit", mWinSalGraphicsImplBase); + } else if( nPart == ControlPart::ButtonDown ) { if (bUseDarkMode) @@ -1186,7 +1190,11 @@ bool WinSalGraphics::drawNativeControl( ControlType nType, break; case ControlType::Spinbox: if( nPart == ControlPart::Entire ) + { + if (bUseDarkMode && !(nState & ControlState::FOCUSED)) + SetWindowTheme(mhWnd, L"CFD", nullptr); hTheme = getThemeHandle(mhWnd, L"Edit", mWinSalGraphicsImplBase); + } else hTheme = getThemeHandle(mhWnd, L"Spin", mWinSalGraphicsImplBase); break; @@ -1194,6 +1202,10 @@ bool WinSalGraphics::drawNativeControl( ControlType nType, hTheme = getThemeHandle(mhWnd, L"Spin", mWinSalGraphicsImplBase); break; case ControlType::Editbox: + if (bUseDarkMode && !(nState & ControlState::FOCUSED)) + SetWindowTheme(mhWnd, L"CFD", nullptr); + hTheme = getThemeHandle(mhWnd, L"Edit", mWinSalGraphicsImplBase); + break; case ControlType::MultilineEditbox: hTheme = getThemeHandle(mhWnd, L"Edit", mWinSalGraphicsImplBase); break; -- cgit