include/vcl/settings.hxx | 3 +++ sc/source/ui/view/gridwin.cxx | 2 +- sc/source/ui/view/hdrcont.cxx | 2 +- vcl/osx/salframe.cxx | 4 ++++ vcl/qt5/QtFrame.cxx | 2 ++ vcl/source/app/settings.cxx | 17 +++++++++++++++++ vcl/unx/gtk3/salnativewidgets-gtk.cxx | 1 + vcl/win/window/salframe.cxx | 4 ++++ 8 files changed, 33 insertions(+), 2 deletions(-)
New commits: commit 258686a58f909ab04c7281c05f15882eb400748e Author: Heiko Tietze <tietze.he...@gmail.com> AuthorDate: Wed May 17 16:48:30 2023 +0200 Commit: Heiko Tietze <heiko.tie...@documentfoundation.org> CommitDate: Tue May 23 09:44:21 2023 +0200 Resolves tdf#145080 - Use accent color for focused cell Accent color added but effectively working only on macOS See inline comments for gtk, qt, and win Change-Id: I1e4a729331735683921f94b27bb2bb02555c0165 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151887 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tie...@documentfoundation.org> diff --git a/include/vcl/settings.hxx b/include/vcl/settings.hxx index 05c7678869d0..7f4849c7b718 100644 --- a/include/vcl/settings.hxx +++ b/include/vcl/settings.hxx @@ -336,6 +336,9 @@ public: void SetDeactiveBorderColor( const Color& rColor ); const Color& GetDeactiveBorderColor() const; + void SetAccentColor( const Color& rColor ); + const Color& GetAccentColor() const; + void SetHighlightColor( const Color& rColor ); const Color& GetHighlightColor() const; diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index c2ec3311bc9d..d32313ae4308 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -6454,7 +6454,7 @@ void ScGridWindow::UpdateCursorOverlay() if (xOverlayManager.is()) { - Color aCursorColor = GetSettings().GetStyleSettings().GetHighlightColor(); + Color aCursorColor = GetSettings().GetStyleSettings().GetAccentColor(); if (mrViewData.GetActivePart() != eWhich) // non-active pane uses a different color. aCursorColor = SC_MOD()->GetColorConfig().GetColorValue(svtools::CALCPAGEBREAKAUTOMATIC).nColor; diff --git a/sc/source/ui/view/hdrcont.cxx b/sc/source/ui/view/hdrcont.cxx index 305ada306856..d6e9b5dbeb3f 100644 --- a/sc/source/ui/view/hdrcont.cxx +++ b/sc/source/ui/view/hdrcont.cxx @@ -361,7 +361,7 @@ void ScHeaderControl::Paint( vcl::RenderContext& /*rRenderContext*/, const tools { // background for selection GetOutDev()->SetLineColor(); - GetOutDev()->SetFillColor( rStyleSettings.GetHighlightColor() ); + GetOutDev()->SetFillColor( rStyleSettings.GetAccentColor() ); GetOutDev()->DrawRect( aFillRect ); } } diff --git a/vcl/osx/salframe.cxx b/vcl/osx/salframe.cxx index ea514b786ada..b4a2d07463b8 100644 --- a/vcl/osx/salframe.cxx +++ b/vcl/osx/salframe.cxx @@ -1384,6 +1384,10 @@ SAL_WNODEPRECATED_DECLARATIONS_POP vcl::Font aTooltipFont(getFont([NSFont toolTipsFontOfSize: 0], nDPIY, aAppFont)); aStyleSettings.SetHelpFont(aTooltipFont); + Color aAccentColor( getColor( [NSColor controlAccentColor], + aStyleSettings.GetAccentColor(), mpNSWindow ) ); + aStyleSettings.SetAccentColor( aAccentColor ); + Color aHighlightColor( getColor( [NSColor selectedTextBackgroundColor], aStyleSettings.GetHighlightColor(), mpNSWindow ) ); aStyleSettings.SetHighlightColor( aHighlightColor ); diff --git a/vcl/qt5/QtFrame.cxx b/vcl/qt5/QtFrame.cxx index ed5c0538e5cb..08d206261b88 100644 --- a/vcl/qt5/QtFrame.cxx +++ b/vcl/qt5/QtFrame.cxx @@ -1143,6 +1143,8 @@ void QtFrame::UpdateSettings(AllSettings& rSettings) style.SetWorkspaceColor(aMid); // Selection + // https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/305 + style.SetAccentColor(aHigh); style.SetHighlightColor(aHigh); style.SetHighlightTextColor(aHighText); style.SetListBoxWindowHighlightColor(aHigh); diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx index 313aacfce155..9921b0b774bc 100644 --- a/vcl/source/app/settings.cxx +++ b/vcl/source/app/settings.cxx @@ -112,6 +112,7 @@ struct ImplStyleData Color maGroupTextColor; Color maHelpColor; Color maHelpTextColor; + Color maAccentColor; Color maHighlightColor; Color maHighlightTextColor; Color maLabelTextColor; @@ -536,6 +537,7 @@ ImplStyleData::ImplStyleData( const ImplStyleData& rData ) : maGroupTextColor( rData.maGroupTextColor ), maHelpColor( rData.maHelpColor ), maHelpTextColor( rData.maHelpTextColor ), + maAccentColor( rData.maAccentColor ), maHighlightColor( rData.maHighlightColor ), maHighlightTextColor( rData.maHighlightTextColor ), maLabelTextColor( rData.maLabelTextColor ), @@ -708,6 +710,7 @@ void ImplStyleData::SetStandardStyles() maMenuBarHighlightTextColor = COL_WHITE; maMenuHighlightColor = COL_BLUE; maMenuHighlightTextColor = COL_WHITE; + maAccentColor = COL_RED; maHighlightColor = COL_BLUE; maHighlightTextColor = COL_WHITE; // make active like highlight, except with a small contrast @@ -1253,6 +1256,19 @@ StyleSettings::GetDeactiveBorderColor() const return mxData->maDeactiveBorderColor; } +void +StyleSettings::SetAccentColor( const Color& rColor ) +{ + CopyData(); + mxData->maAccentColor = rColor; +} + +const Color& +StyleSettings::GetAccentColor() const +{ + return mxData->maAccentColor; +} + void StyleSettings::SetHighlightColor( const Color& rColor ) { @@ -2539,6 +2555,7 @@ bool StyleSettings::operator ==( const StyleSettings& rSet ) const (mxData->maMenuBarRolloverTextColor == rSet.mxData->maMenuBarRolloverTextColor) && (mxData->maMenuHighlightColor == rSet.mxData->maMenuHighlightColor) && (mxData->maMenuHighlightTextColor == rSet.mxData->maMenuHighlightTextColor) && + (mxData->maAccentColor == rSet.mxData->maAccentColor) && (mxData->maHighlightColor == rSet.mxData->maHighlightColor) && (mxData->maHighlightTextColor == rSet.mxData->maHighlightTextColor) && (mxData->maTabTextColor == rSet.mxData->maTabTextColor) && diff --git a/vcl/unx/gtk3/salnativewidgets-gtk.cxx b/vcl/unx/gtk3/salnativewidgets-gtk.cxx index b5efe1b59ddc..425c642d45fd 100644 --- a/vcl/unx/gtk3/salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk3/salnativewidgets-gtk.cxx @@ -2420,6 +2420,7 @@ bool GtkSalGraphics::updateSettings(AllSettings& rSettings) ::Color aHighlightColor = style_context_get_background_color(pCStyle); style_context_get_color(pCStyle, &text_color); ::Color aHighlightTextColor = getColor( text_color ); + aStyleSet.SetAccentColor( aHighlightColor ); // https://debugpointnews.com/gnome-native-accent-colour-announcement/ aStyleSet.SetHighlightColor( aHighlightColor ); aStyleSet.SetHighlightTextColor( aHighlightTextColor ); aStyleSet.SetListBoxWindowHighlightColor( aHighlightColor ); diff --git a/vcl/win/window/salframe.cxx b/vcl/win/window/salframe.cxx index 2ab3ef3c56ca..e0a99d8e8779 100644 --- a/vcl/win/window/salframe.cxx +++ b/vcl/win/window/salframe.cxx @@ -2829,6 +2829,10 @@ void WinSalFrame::UpdateSettings( AllSettings& rSettings ) aStyleSettings.SetFieldTextColor( aStyleSettings.GetWindowTextColor() ); aStyleSettings.SetFieldRolloverTextColor( aStyleSettings.GetFieldTextColor() ); aStyleSettings.SetListBoxWindowTextColor( aStyleSettings.GetFieldTextColor() ); + + aStyleSettings.SetAccentColor( ImplWinColorToSal( GetSysColor( COLOR_HIGHLIGHT ) ) ); + // https://devblogs.microsoft.com/oldnewthing/20170405-00/?p=95905 + aStyleSettings.SetHighlightColor( ImplWinColorToSal( GetSysColor( COLOR_HIGHLIGHT ) ) ); aStyleSettings.SetHighlightTextColor(aHighlightTextColor); aStyleSettings.SetListBoxWindowHighlightColor( aStyleSettings.GetHighlightColor() );