summaryrefslogtreecommitdiffstats
path: root/layout/style/nsRuleNode.cpp
diff options
context:
space:
mode:
authorathenian200 <athenian200@outlook.com>2020-09-29 11:31:46 -0500
committerMoonchild <moonchild@palemoon.org>2020-10-24 10:36:47 +0000
commitc1ef9546792e8d5881c9516d8e51de3cd6999f79 (patch)
treef9c493220c5af9df81cd6c1938d1d35a4a0eb1d5 /layout/style/nsRuleNode.cpp
parenteac19e335655e462c5a100b64d9016094cdbe34a (diff)
downloadUXP-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.cpp15
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)
}