summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Wagner <thorsten.wagner.4@gmail.com>2021-01-17 20:24:26 +0100
committerTor Lillqvist <tml@iki.fi>2021-01-18 15:53:50 +0200
commit2ca3dad5f5604890fa83ed8220cf7deeab26250e (patch)
tree42187cc3607ad1bd512e2eda0d49468c8a92d9b9
parent539e1e9f60923ec75ed68992f93e3717f9251dcd (diff)
tdf#138314 Change selected tab text color on macOS Big Sur
Starting with macOS Big Sur, coloring has changed. Currently there is no documentation which system color should be used for selected tab text. As a workaround text color is changed for macOS Big Sur and newer only. Change-Id: I2e8c83527775c17f95e5e4afe70577442e14715e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109479 Tested-by: Tor Lillqvist <tml@collabora.com> Reviewed-by: Tor Lillqvist <tml@collabora.com>
-rw-r--r--vcl/osx/salframe.cxx32
1 files changed, 21 insertions, 11 deletions
diff --git a/vcl/osx/salframe.cxx b/vcl/osx/salframe.cxx
index 71cc5a4f1982..f4c7379cf42b 100644
--- a/vcl/osx/salframe.cxx
+++ b/vcl/osx/salframe.cxx
@@ -1301,27 +1301,37 @@ SAL_WNODEPRECATED_DECLARATIONS_POP
// black otherwise
Color aControlTextColor(getColor([NSColor controlTextColor], COL_BLACK, mpNSWindow));
- Color aSelectedControlTextColor(getColor([NSColor alternateSelectedControlTextColor], COL_WHITE, mpNSWindow));
- aStyleSettings.SetDefaultButtonTextColor(aSelectedControlTextColor);
+ Color aSelectedControlTextColor(getColor([NSColor selectedControlTextColor], COL_BLACK, mpNSWindow));
+ Color aAlternateSelectedControlTextColor(getColor([NSColor alternateSelectedControlTextColor], COL_WHITE, mpNSWindow));
+ aStyleSettings.SetDefaultButtonTextColor(aAlternateSelectedControlTextColor);
aStyleSettings.SetButtonTextColor(aControlTextColor);
- aStyleSettings.SetDefaultActionButtonTextColor(aSelectedControlTextColor);
+ aStyleSettings.SetDefaultActionButtonTextColor(aAlternateSelectedControlTextColor);
aStyleSettings.SetActionButtonTextColor(aControlTextColor);
aStyleSettings.SetFlatButtonTextColor(aControlTextColor);
- aStyleSettings.SetDefaultButtonRolloverTextColor(aSelectedControlTextColor);
+ aStyleSettings.SetDefaultButtonRolloverTextColor(aAlternateSelectedControlTextColor);
aStyleSettings.SetButtonRolloverTextColor(aControlTextColor);
- aStyleSettings.SetDefaultActionButtonRolloverTextColor(aSelectedControlTextColor);
+ aStyleSettings.SetDefaultActionButtonRolloverTextColor(aAlternateSelectedControlTextColor);
aStyleSettings.SetActionButtonRolloverTextColor(aControlTextColor);
aStyleSettings.SetFlatButtonRolloverTextColor(aControlTextColor);
- aStyleSettings.SetDefaultButtonPressedRolloverTextColor(aSelectedControlTextColor);
- aStyleSettings.SetButtonPressedRolloverTextColor(aSelectedControlTextColor);
- aStyleSettings.SetDefaultActionButtonPressedRolloverTextColor(aSelectedControlTextColor);
- aStyleSettings.SetActionButtonPressedRolloverTextColor(aSelectedControlTextColor);
+ aStyleSettings.SetDefaultButtonPressedRolloverTextColor(aAlternateSelectedControlTextColor);
+ aStyleSettings.SetButtonPressedRolloverTextColor(aAlternateSelectedControlTextColor);
+ aStyleSettings.SetDefaultActionButtonPressedRolloverTextColor(aAlternateSelectedControlTextColor);
+ aStyleSettings.SetActionButtonPressedRolloverTextColor(aAlternateSelectedControlTextColor);
aStyleSettings.SetFlatButtonPressedRolloverTextColor(aControlTextColor);
- // Set text colors for tabs according to OS settings, typically white for selected buttons, black otherwise
+ // Set text colors for tabs according to OS settings
aStyleSettings.SetTabTextColor(aControlTextColor);
- aStyleSettings.SetTabHighlightTextColor(aSelectedControlTextColor);
+
+ // FIXME: Starting with macOS Big Sur, coloring has changed. Currently there is no documentation which system color should be
+ // used for selected tab text. As a workaround the current OS version has to be considered. This code has to be reviewed once
+ // issue is covered by documentation.
+
+ NSOperatingSystemVersion aOSVersion = { .majorVersion = 11, .minorVersion = 0, .patchVersion = 0 };
+ if ([NSProcessInfo.processInfo isOperatingSystemAtLeastVersion: aOSVersion])
+ aStyleSettings.SetTabHighlightTextColor(aSelectedControlTextColor);
+ else
+ aStyleSettings.SetTabHighlightTextColor(aAlternateSelectedControlTextColor);
aStyleSettings.SetCursorBlinkTime( mnBlinkCursorDelay );