[Libreoffice-commits] core.git: vcl/source
bykivi (via logerrit)
logerrit at kemper.freedesktop.org
Sat Apr 10 13:21:52 UTC 2021
vcl/source/control/button.cxx | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
New commits:
commit 68b225bfbf51391b517dd483181e40e4a4c3fe31
Author: bykivi <kivader.matej at gmail.com>
AuthorDate: Tue Mar 23 13:41:30 2021 +0100
Commit: Andreas Heinisch <andreas.heinisch at yahoo.de>
CommitDate: Sat Apr 10 15:21:17 2021 +0200
tdf#141195:fix button text color with default background color
Change-Id: I2f30282e5e1f5e303be2802529f693be4968620d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112989
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch at yahoo.de>
diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx
index 2d68ab5f05c9..f2c413de8478 100644
--- a/vcl/source/control/button.cxx
+++ b/vcl/source/control/button.cxx
@@ -693,7 +693,20 @@ void PushButton::ImplDrawPushButtonFrame(vcl::RenderContext& rRenderContext,
AllSettings aSettings = rRenderContext.GetSettings();
AllSettings aOldSettings = aSettings;
StyleSettings aStyleSettings = aSettings.GetStyleSettings();
- aStyleSettings.Set3DColors(GetControlBackground());
+ if (nStyle & DrawButtonFlags::Highlight)
+ {
+ // with the custom background, native highlight do nothing, so code bellow mimic
+ // native highlight by changing luminance
+ Color controlBackgroundColorHighlighted = GetControlBackground();
+ sal_uInt8 colorLuminance = controlBackgroundColorHighlighted.GetLuminance();
+ if (colorLuminance < 205)
+ controlBackgroundColorHighlighted.IncreaseLuminance(50);
+ else
+ controlBackgroundColorHighlighted.DecreaseLuminance(50);
+ aStyleSettings.Set3DColors(controlBackgroundColorHighlighted);
+ }
+ else
+ aStyleSettings.Set3DColors(GetControlBackground());
aSettings.SetStyleSettings(aStyleSettings);
// Call OutputDevice::SetSettings() explicitly, as rRenderContext may
@@ -769,11 +782,7 @@ void PushButton::ImplDrawPushButtonContent(OutputDevice *pDev, DrawFlags nDrawFl
if (nDrawFlags & DrawFlags::Mono)
aColor = COL_BLACK;
- // Custom foreground color is reasonable on stock controls only. Stock controls are used if a custom background has been set
- // (and thus no native controls are able to be used) or no native controls are available.
-
- else if (IsControlForeground()
- && (IsControlBackground() || !IsNativeControlSupported(ControlType::Pushbutton, ControlPart::Entire)))
+ else if (IsControlForeground())
aColor = GetControlForeground();
// Button types with possibly different text coloring are flat buttons and regular buttons. Regular buttons may be action
More information about the Libreoffice-commits
mailing list