Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) | 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed. |
| 7 * Copyright (C) 2009 Google Inc. All rights reserved. | 7 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) | 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) |
| 9 * | 9 * |
| 10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
| (...skipping 1769 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1780 return !isInert() && !(style()->userSelect() == SELECT_NONE && style()->user Modify() == READ_ONLY); | 1780 return !isInert() && !(style()->userSelect() == SELECT_NONE && style()->user Modify() == READ_ONLY); |
| 1781 } | 1781 } |
| 1782 | 1782 |
| 1783 Color RenderObject::selectionBackgroundColor() const | 1783 Color RenderObject::selectionBackgroundColor() const |
| 1784 { | 1784 { |
| 1785 if (!isSelectable()) | 1785 if (!isSelectable()) |
| 1786 return Color::transparent; | 1786 return Color::transparent; |
| 1787 | 1787 |
| 1788 if (RefPtr<RenderStyle> pseudoStyle = getUncachedPseudoStyle(PseudoStyleRequ est(SELECTION))) | 1788 if (RefPtr<RenderStyle> pseudoStyle = getUncachedPseudoStyle(PseudoStyleRequ est(SELECTION))) |
| 1789 return resolveColor(pseudoStyle.get(), CSSPropertyBackgroundColor).blend WithWhite(); | 1789 return resolveColor(pseudoStyle.get(), CSSPropertyBackgroundColor).blend WithWhite(); |
| 1790 | |
| 1791 // If the element is in shadow tree of input element, then get the PseudoSty le | |
| 1792 // from the input element. | |
| 1793 if (node() && node()->shadowHost()) { | |
| 1794 RenderObject* shadowHostRenderer = node()->shadowHost()->renderer(); | |
| 1795 if (shadowHostRenderer->isTextControl()) { | |
|
ojan
2014/04/09 01:57:53
Special casing text controls is not right. For exa
| |
| 1796 if (RefPtr<RenderStyle> pseudoStyle = shadowHostRenderer->getUncache dPseudoStyle(PseudoStyleRequest(SELECTION))) | |
| 1797 return resolveColor(pseudoStyle.get(), CSSPropertyBackgroundColo r).blendWithWhite(); | |
| 1798 } | |
| 1799 } | |
| 1800 | |
| 1790 return frame()->selection().isFocusedAndActive() ? | 1801 return frame()->selection().isFocusedAndActive() ? |
| 1791 RenderTheme::theme().activeSelectionBackgroundColor() : | 1802 RenderTheme::theme().activeSelectionBackgroundColor() : |
| 1792 RenderTheme::theme().inactiveSelectionBackgroundColor(); | 1803 RenderTheme::theme().inactiveSelectionBackgroundColor(); |
| 1793 } | 1804 } |
| 1794 | 1805 |
| 1795 Color RenderObject::selectionColor(int colorProperty) const | 1806 Color RenderObject::selectionColor(int colorProperty) const |
| 1796 { | 1807 { |
| 1797 // If the element is unselectable, or we are only painting the selection, | 1808 // If the element is unselectable, or we are only painting the selection, |
| 1798 // don't override the foreground color with the selection foreground color. | 1809 // don't override the foreground color with the selection foreground color. |
| 1799 if (!isSelectable() || (frame()->view()->paintBehavior() & PaintBehaviorSele ctionOnly)) | 1810 if (!isSelectable() || (frame()->view()->paintBehavior() & PaintBehaviorSele ctionOnly)) |
| 1800 return resolveColor(colorProperty); | 1811 return resolveColor(colorProperty); |
| 1801 | 1812 |
| 1802 if (RefPtr<RenderStyle> pseudoStyle = getUncachedPseudoStyle(PseudoStyleRequ est(SELECTION))) | 1813 if (RefPtr<RenderStyle> pseudoStyle = getUncachedPseudoStyle(PseudoStyleRequ est(SELECTION))) |
| 1803 return resolveColor(pseudoStyle.get(), colorProperty); | 1814 return resolveColor(pseudoStyle.get(), colorProperty); |
| 1815 | |
| 1816 // If the element is in shadow tree of input element, then get the PseudoSty le | |
| 1817 // from the input element. | |
| 1818 if (node() && node()->shadowHost()) { | |
| 1819 RenderObject* shadowHostRenderer = node()->shadowHost()->renderer(); | |
| 1820 if (shadowHostRenderer->isTextControl()) { | |
| 1821 if (RefPtr<RenderStyle> pseudoStyle = shadowHostRenderer->getUncache dPseudoStyle(PseudoStyleRequest(SELECTION))) | |
| 1822 return resolveColor(pseudoStyle.get(), colorProperty); | |
| 1823 } | |
| 1824 } | |
| 1825 | |
| 1804 if (!RenderTheme::theme().supportsSelectionForegroundColors()) | 1826 if (!RenderTheme::theme().supportsSelectionForegroundColors()) |
| 1805 return resolveColor(colorProperty); | 1827 return resolveColor(colorProperty); |
| 1806 return frame()->selection().isFocusedAndActive() ? | 1828 return frame()->selection().isFocusedAndActive() ? |
| 1807 RenderTheme::theme().activeSelectionForegroundColor() : | 1829 RenderTheme::theme().activeSelectionForegroundColor() : |
| 1808 RenderTheme::theme().inactiveSelectionForegroundColor(); | 1830 RenderTheme::theme().inactiveSelectionForegroundColor(); |
| 1809 } | 1831 } |
| 1810 | 1832 |
| 1811 Color RenderObject::selectionForegroundColor() const | 1833 Color RenderObject::selectionForegroundColor() const |
| 1812 { | 1834 { |
| 1813 return selectionColor(CSSPropertyWebkitTextFillColor); | 1835 return selectionColor(CSSPropertyWebkitTextFillColor); |
| (...skipping 1561 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3375 { | 3397 { |
| 3376 if (object1) { | 3398 if (object1) { |
| 3377 const WebCore::RenderObject* root = object1; | 3399 const WebCore::RenderObject* root = object1; |
| 3378 while (root->parent()) | 3400 while (root->parent()) |
| 3379 root = root->parent(); | 3401 root = root->parent(); |
| 3380 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); | 3402 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); |
| 3381 } | 3403 } |
| 3382 } | 3404 } |
| 3383 | 3405 |
| 3384 #endif | 3406 #endif |
| OLD | NEW |