diff options
author | athenian200 <athenian200@outlook.com> | 2020-09-29 11:31:46 -0500 |
---|---|---|
committer | athenian200 <athenian200@outlook.com> | 2020-10-18 10:04:12 -0500 |
commit | 8e3832bacbbef4a549f64df5c978a5672e47ff2e (patch) | |
tree | 6a3afb705aa7ae2a9f2be65cd6f5628fcc72131a /layout/style/StyleComplexColor.h | |
parent | 5ad0a15f6a60e24fb260e4a0d0d8050e42c33114 (diff) | |
download | UXP-8e3832bacbbef4a549f64df5c978a5672e47ff2e.tar UXP-8e3832bacbbef4a549f64df5c978a5672e47ff2e.tar.gz UXP-8e3832bacbbef4a549f64df5c978a5672e47ff2e.tar.lz UXP-8e3832bacbbef4a549f64df5c978a5672e47ff2e.tar.xz UXP-8e3832bacbbef4a549f64df5c978a5672e47ff2e.zip |
Issue #1668 - Part 1: Implement support for caret-color property.
This CSS property allows input carets (that blinking input cursor you see in text fields), to be given a custom color. This was implemented in Firefox 53, and it was such a minor feature that no one ever missed it, but I don't see any harm in implementing this.
https://bugzilla.mozilla.org/show_bug.cgi?id=1063162
Diffstat (limited to 'layout/style/StyleComplexColor.h')
-rw-r--r-- | layout/style/StyleComplexColor.h | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/layout/style/StyleComplexColor.h b/layout/style/StyleComplexColor.h index 4acf90a56..6385b57a1 100644 --- a/layout/style/StyleComplexColor.h +++ b/layout/style/StyleComplexColor.h @@ -24,16 +24,29 @@ struct StyleComplexColor { nscolor mColor; uint8_t mForegroundRatio; - - static StyleComplexColor FromColor(nscolor aColor) { return {aColor, 0}; } - static StyleComplexColor CurrentColor() { return {NS_RGBA(0, 0, 0, 0), 255}; } + // Whether the complex color represents a computed-value time auto + // value. This is only a flag indicating that this value should not + // be interpolatable with other colors, while other fields still + // represents the actual used color of this value. + bool mIsAuto; + + static StyleComplexColor FromColor(nscolor aColor) { + return {aColor, 0, false}; + } + static StyleComplexColor CurrentColor() { + return {NS_RGBA(0, 0, 0, 0), 255, false}; + } + static StyleComplexColor Auto() { + return {NS_RGBA(0, 0, 0, 0), 255, true}; + } bool IsNumericColor() const { return mForegroundRatio == 0; } bool IsCurrentColor() const { return mForegroundRatio == 255; } bool operator==(const StyleComplexColor& aOther) const { return mForegroundRatio == aOther.mForegroundRatio && - (IsCurrentColor() || mColor == aOther.mColor); + (IsCurrentColor() || mColor == aOther.mColor) && + mIsAuto == aOther.mIsAuto; } bool operator!=(const StyleComplexColor& aOther) const { return !(*this == aOther); |