| Index: Source/core/rendering/RenderObject.cpp
|
| diff --git a/Source/core/rendering/RenderObject.cpp b/Source/core/rendering/RenderObject.cpp
|
| index da52773b9c681e0a141c09e87d073e96df4c1b23..44edf1cd4d741683e17034324c60a2d792c69f80 100644
|
| --- a/Source/core/rendering/RenderObject.cpp
|
| +++ b/Source/core/rendering/RenderObject.cpp
|
| @@ -1643,10 +1643,15 @@ void RenderObject::showRenderTreeAndMark(const RenderObject* markedObject1, cons
|
|
|
| #endif // NDEBUG
|
|
|
| +static bool shouldUseSelectionColor(const RenderStyle& style)
|
| +{
|
| + return style.userSelect() != SELECT_NONE || style.userModify() != READ_ONLY;
|
| +}
|
| +
|
| Color RenderObject::selectionBackgroundColor() const
|
| {
|
| Color color;
|
| - if (style()->userSelect() != SELECT_NONE) {
|
| + if (shouldUseSelectionColor(*style())) {
|
| RefPtr<RenderStyle> pseudoStyle = getUncachedPseudoStyle(PseudoStyleRequest(SELECTION));
|
| if (pseudoStyle && pseudoStyle->visitedDependentColor(CSSPropertyBackgroundColor).isValid())
|
| color = pseudoStyle->visitedDependentColor(CSSPropertyBackgroundColor).blendWithWhite();
|
| @@ -1664,7 +1669,7 @@ Color RenderObject::selectionColor(int colorProperty) const
|
| Color color;
|
| // If the element is unselectable, or we are only painting the selection,
|
| // don't override the foreground color with the selection foreground color.
|
| - if (style()->userSelect() == SELECT_NONE
|
| + if (!shouldUseSelectionColor(*style())
|
| || (frame()->view()->paintBehavior() & PaintBehaviorSelectionOnly))
|
| return color;
|
|
|
|
|