Chromium Code Reviews| Index: Source/core/page/FocusController.cpp |
| diff --git a/Source/core/page/FocusController.cpp b/Source/core/page/FocusController.cpp |
| index b8c2276bd90e38f1560f60bb9b8560fa61268158..b980c62306d0bc3505475da38069afb4574614f4 100644 |
| --- a/Source/core/page/FocusController.cpp |
| +++ b/Source/core/page/FocusController.cpp |
| @@ -654,9 +654,14 @@ static void clearSelectionIfNeeded(LocalFrame* oldFocusedFrame, LocalFrame* newF |
| return; |
| Node* selectionStartNode = selection.selection().start().deprecatedNode(); |
| - if (selectionStartNode == newFocusedNode || selectionStartNode->isDescendantOf(newFocusedNode) || selectionStartNode->deprecatedShadowAncestorNode() == newFocusedNode) |
| + if (selectionStartNode == newFocusedNode || selectionStartNode->isDescendantOf(newFocusedNode)) |
| return; |
| + if (selectionStartNode->isInShadowTree()) { |
|
tkent
2014/07/08 23:33:01
nit:
if (selectionStartNode->isInShadowTree() && s
deepak.sa
2014/07/10 13:52:03
Done.
|
| + if (selectionStartNode->shadowHost() == newFocusedNode) |
| + return; |
| + } |
| + |
| if (Node* mousePressNode = newFocusedFrame->eventHandler().mousePressNode()) { |
| if (mousePressNode->renderer() && !mousePressNode->canStartSelection()) { |
| // Don't clear the selection for contentEditable elements, but do |