fix: convert system colors to device color space in systemPreferences (#28121)
This commit is contained in:
parent
a442f11574
commit
f73256651b
3 changed files with 18 additions and 3 deletions
|
@ -26,9 +26,11 @@
|
||||||
#include "shell/browser/mac/dict_util.h"
|
#include "shell/browser/mac/dict_util.h"
|
||||||
#include "shell/browser/mac/electron_application.h"
|
#include "shell/browser/mac/electron_application.h"
|
||||||
#include "shell/browser/ui/cocoa/NSColor+Hex.h"
|
#include "shell/browser/ui/cocoa/NSColor+Hex.h"
|
||||||
|
#include "shell/common/color_util.h"
|
||||||
#include "shell/common/gin_converters/gurl_converter.h"
|
#include "shell/common/gin_converters/gurl_converter.h"
|
||||||
#include "shell/common/gin_converters/value_converter.h"
|
#include "shell/common/gin_converters/value_converter.h"
|
||||||
#include "shell/common/process_util.h"
|
#include "shell/common/process_util.h"
|
||||||
|
#include "skia/ext/skia_utils_mac.h"
|
||||||
#include "ui/native_theme/native_theme.h"
|
#include "ui/native_theme/native_theme.h"
|
||||||
|
|
||||||
namespace gin {
|
namespace gin {
|
||||||
|
@ -388,7 +390,8 @@ std::string SystemPreferences::GetAccentColor() {
|
||||||
if (@available(macOS 10.14, *))
|
if (@available(macOS 10.14, *))
|
||||||
sysColor = [NSColor controlAccentColor];
|
sysColor = [NSColor controlAccentColor];
|
||||||
|
|
||||||
return base::SysNSStringToUTF8([sysColor RGBAValue]);
|
return ToRGBAHex(skia::NSSystemColorToSkColor(sysColor),
|
||||||
|
false /* include_hash */);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string SystemPreferences::GetSystemColor(gin_helper::ErrorThrower thrower,
|
std::string SystemPreferences::GetSystemColor(gin_helper::ErrorThrower thrower,
|
||||||
|
@ -417,7 +420,7 @@ std::string SystemPreferences::GetSystemColor(gin_helper::ErrorThrower thrower,
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
return base::SysNSStringToUTF8([sysColor hexadecimalValue]);
|
return ToRGBHex(skia::NSSystemColorToSkColor(sysColor));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SystemPreferences::CanPromptTouchID() {
|
bool SystemPreferences::CanPromptTouchID() {
|
||||||
|
@ -575,7 +578,7 @@ std::string SystemPreferences::GetColor(gin_helper::ErrorThrower thrower,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sysColor)
|
if (sysColor)
|
||||||
return base::SysNSStringToUTF8([sysColor hexadecimalValue]);
|
return ToRGBHex(skia::NSSystemColorToSkColor(sysColor));
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,4 +51,14 @@ std::string ToRGBHex(SkColor color) {
|
||||||
SkColorGetG(color), SkColorGetB(color));
|
SkColorGetG(color), SkColorGetB(color));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string ToRGBAHex(SkColor color, bool include_hash) {
|
||||||
|
std::string color_str = base::StringPrintf(
|
||||||
|
"%02X%02X%02X%02X", SkColorGetR(color), SkColorGetG(color),
|
||||||
|
SkColorGetB(color), SkColorGetA(color));
|
||||||
|
if (include_hash) {
|
||||||
|
return "#" + color_str;
|
||||||
|
}
|
||||||
|
return color_str;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace electron
|
} // namespace electron
|
||||||
|
|
|
@ -17,6 +17,8 @@ SkColor ParseHexColor(const std::string& color_string);
|
||||||
// Convert color to RGB hex value like "#ABCDEF"
|
// Convert color to RGB hex value like "#ABCDEF"
|
||||||
std::string ToRGBHex(SkColor color);
|
std::string ToRGBHex(SkColor color);
|
||||||
|
|
||||||
|
std::string ToRGBAHex(SkColor color, bool include_hash = true);
|
||||||
|
|
||||||
} // namespace electron
|
} // namespace electron
|
||||||
|
|
||||||
#endif // SHELL_COMMON_COLOR_UTIL_H_
|
#endif // SHELL_COMMON_COLOR_UTIL_H_
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue