diff options
author | athenian200 <athenian200@outlook.com> | 2020-09-29 11:31:46 -0500 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2020-10-24 10:36:47 +0000 |
commit | c1ef9546792e8d5881c9516d8e51de3cd6999f79 (patch) | |
tree | f9c493220c5af9df81cd6c1938d1d35a4a0eb1d5 /layout/style/nsRuleNode.cpp | |
parent | eac19e335655e462c5a100b64d9016094cdbe34a (diff) | |
download | UXP-c1ef9546792e8d5881c9516d8e51de3cd6999f79.tar UXP-c1ef9546792e8d5881c9516d8e51de3cd6999f79.tar.gz UXP-c1ef9546792e8d5881c9516d8e51de3cd6999f79.tar.lz UXP-c1ef9546792e8d5881c9516d8e51de3cd6999f79.tar.xz UXP-c1ef9546792e8d5881c9516d8e51de3cd6999f79.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/nsRuleNode.cpp')
-rw-r--r-- | layout/style/nsRuleNode.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/layout/style/nsRuleNode.cpp b/layout/style/nsRuleNode.cpp index 036d97f86..66345390e 100644 --- a/layout/style/nsRuleNode.cpp +++ b/layout/style/nsRuleNode.cpp @@ -1152,13 +1152,16 @@ SetComplexColor(const nsCSSValue& aValue, aResult = StyleComplexColor::CurrentColor(); } else if (unit == eCSSUnit_ComplexColor) { aResult = aValue.GetStyleComplexColorValue(); + } else if (unit == eCSSUnit_Auto) { + aResult = StyleComplexColor::Auto(); } else { + nscolor resultColor; if (!SetColor(aValue, aParentColor.mColor, aPresContext, - nullptr, aResult.mColor, aConditions)) { + nullptr, resultColor, aConditions)) { MOZ_ASSERT_UNREACHABLE("Unknown color value"); return; } - aResult.mForegroundRatio = 0; + aResult = StyleComplexColor::FromColor(resultColor); } } @@ -5210,6 +5213,14 @@ nsRuleNode::ComputeUserInterfaceData(void* aStartStruct, parentUI->mPointerEvents, NS_STYLE_POINTER_EVENTS_AUTO); + // caret-color: auto, color, inherit + const nsCSSValue* caretColorValue = aRuleData->ValueForCaretColor(); + SetComplexColor<eUnsetInherit>(*caretColorValue, + parentUI->mCaretColor, + StyleComplexColor::Auto(), + mPresContext, + ui->mCaretColor, conditions); + COMPUTE_END_INHERITED(UserInterface, ui) } |