| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. All rights reserved. | 2 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 887 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 898 m_startInComposedTree = adjustPositionInComposedTreeForStart(m_startInCo
mposedTree, shadowHost); | 898 m_startInComposedTree = adjustPositionInComposedTreeForStart(m_startInCo
mposedTree, shadowHost); |
| 899 m_extentInComposedTree = m_startInComposedTree; | 899 m_extentInComposedTree = m_startInComposedTree; |
| 900 } | 900 } |
| 901 } | 901 } |
| 902 | 902 |
| 903 bool VisibleSelection::isBaseFirstInComposedTree() const | 903 bool VisibleSelection::isBaseFirstInComposedTree() const |
| 904 { | 904 { |
| 905 return m_baseInComposedTree.isNotNull() && m_baseInComposedTree.compareTo(m_
extentInComposedTree) <= 0; | 905 return m_baseInComposedTree.isNotNull() && m_baseInComposedTree.compareTo(m_
extentInComposedTree) <= 0; |
| 906 } | 906 } |
| 907 | 907 |
| 908 static Element* lowestEditableAncestor(Node* node) |
| 909 { |
| 910 while (node) { |
| 911 if (node->hasEditableStyle()) |
| 912 return node->rootEditableElement(); |
| 913 if (isHTMLBodyElement(*node)) |
| 914 break; |
| 915 node = node->parentNode(); |
| 916 } |
| 917 |
| 918 return nullptr; |
| 919 } |
| 920 |
| 908 void VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries() | 921 void VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries() |
| 909 { | 922 { |
| 910 if (m_base.isNull() || m_start.isNull() || m_end.isNull()) | 923 if (m_base.isNull() || m_start.isNull() || m_end.isNull()) |
| 911 return; | 924 return; |
| 912 | 925 |
| 913 ContainerNode* baseRoot = highestEditableRoot(m_base); | 926 ContainerNode* baseRoot = highestEditableRoot(m_base); |
| 914 ContainerNode* startRoot = highestEditableRoot(m_start); | 927 ContainerNode* startRoot = highestEditableRoot(m_start); |
| 915 ContainerNode* endRoot = highestEditableRoot(m_end); | 928 ContainerNode* endRoot = highestEditableRoot(m_end); |
| 916 | 929 |
| 917 Element* baseEditableAncestor = lowestEditableAncestor(m_base.computeContain
erNode()); | 930 Element* baseEditableAncestor = lowestEditableAncestor(m_base.computeContain
erNode()); |
| (...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1244 sel.showTreeForThis(); | 1257 sel.showTreeForThis(); |
| 1245 } | 1258 } |
| 1246 | 1259 |
| 1247 void showTree(const blink::VisibleSelection* sel) | 1260 void showTree(const blink::VisibleSelection* sel) |
| 1248 { | 1261 { |
| 1249 if (sel) | 1262 if (sel) |
| 1250 sel->showTreeForThis(); | 1263 sel->showTreeForThis(); |
| 1251 } | 1264 } |
| 1252 | 1265 |
| 1253 #endif | 1266 #endif |
| OLD | NEW |