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 716 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
727 m_start = next.deepEquivalent(); | 727 m_start = next.deepEquivalent(); |
728 } | 728 } |
729 } | 729 } |
730 | 730 |
731 // Correct the extent if necessary. | 731 // Correct the extent if necessary. |
732 if (baseEditableAncestor != lowestEditableAncestor(m_extent.computeContainer
Node())) | 732 if (baseEditableAncestor != lowestEditableAncestor(m_extent.computeContainer
Node())) |
733 m_extent = m_baseIsFirst ? m_end : m_start; | 733 m_extent = m_baseIsFirst ? m_end : m_start; |
734 } | 734 } |
735 | 735 |
736 template <typename Strategy> | 736 template <typename Strategy> |
737 VisiblePositionTemplate<Strategy> VisibleSelectionTemplate<Strategy>::visiblePos
itionRespectingEditingBoundary(const LayoutPoint& localPoint, Node* targetNode)
const | |
738 { | |
739 return createVisiblePosition(positionRespectingEditingBoundary(localPoint, t
argetNode)); | |
740 } | |
741 | |
742 template <typename Strategy> | |
743 PositionWithAffinityTemplate<Strategy> VisibleSelectionTemplate<Strategy>::posit
ionRespectingEditingBoundary(const LayoutPoint& localPoint, Node* targetNode) co
nst | |
744 { | |
745 if (!targetNode->layoutObject()) | |
746 return PositionWithAffinityTemplate<Strategy>(); | |
747 | |
748 LayoutPoint selectionEndPoint = localPoint; | |
749 Element* editableElement = rootEditableElement(); | |
750 | |
751 if (editableElement && !editableElement->contains(targetNode)) { | |
752 if (!editableElement->layoutObject()) | |
753 return PositionWithAffinityTemplate<Strategy>(); | |
754 | |
755 FloatPoint absolutePoint = targetNode->layoutObject()->localToAbsolute(F
loatPoint(selectionEndPoint)); | |
756 selectionEndPoint = roundedLayoutPoint(editableElement->layoutObject()->
absoluteToLocal(absolutePoint)); | |
757 targetNode = editableElement; | |
758 } | |
759 | |
760 return fromPositionInDOMTree<Strategy>(targetNode->layoutObject()->positionF
orPoint(selectionEndPoint)); | |
761 } | |
762 | |
763 template <typename Strategy> | |
764 bool VisibleSelectionTemplate<Strategy>::isContentEditable() const | 737 bool VisibleSelectionTemplate<Strategy>::isContentEditable() const |
765 { | 738 { |
766 return isEditablePosition(start()); | 739 return isEditablePosition(start()); |
767 } | 740 } |
768 | 741 |
769 template <typename Strategy> | 742 template <typename Strategy> |
770 bool VisibleSelectionTemplate<Strategy>::hasEditableStyle() const | 743 bool VisibleSelectionTemplate<Strategy>::hasEditableStyle() const |
771 { | 744 { |
772 return isEditablePosition(start(), ContentIsEditable, DoNotUpdateStyle); | 745 return isEditablePosition(start(), ContentIsEditable, DoNotUpdateStyle); |
773 } | 746 } |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
998 { | 971 { |
999 sel.showTreeForThis(); | 972 sel.showTreeForThis(); |
1000 } | 973 } |
1001 | 974 |
1002 void showTree(const blink::VisibleSelectionInFlatTree* sel) | 975 void showTree(const blink::VisibleSelectionInFlatTree* sel) |
1003 { | 976 { |
1004 if (sel) | 977 if (sel) |
1005 sel->showTreeForThis(); | 978 sel->showTreeForThis(); |
1006 } | 979 } |
1007 #endif | 980 #endif |
OLD | NEW |