Changeset 72777 in webkit
- Timestamp:
- Nov 27, 2010 6:54:43 PM (13 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 1 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r72776 r72777 1 2010-11-27 Benjamin Kalman <kalman@chromium.org> 2 3 Reviewed by Darin Adler. 4 5 Move Position::EditingBoundaryCrossingRule to a new header file 6 https://bugs.webkit.org/show_bug.cgi?id=49630 7 8 * GNUmakefile.am: 9 * WebCore.exp.in: 10 * WebCore.gypi: 11 * WebCore.pro: 12 * WebCore.vcproj/WebCore.vcproj: 13 * WebCore.xcodeproj/project.pbxproj: 14 * dom/Position.cpp: 15 (WebCore::downstreamIgnoringEditingBoundaries): 16 (WebCore::upstreamIgnoringEditingBoundaries): 17 * dom/Position.h: 18 * editing/DeleteSelectionCommand.cpp: 19 (WebCore::DeleteSelectionCommand::doApply): 20 * editing/EditingBoundary.h: Added. 21 * editing/visible_units.cpp: 22 (WebCore::startOfParagraph): 23 (WebCore::endOfParagraph): 24 (WebCore::isStartOfParagraph): 25 (WebCore::isEndOfParagraph): 26 * editing/visible_units.h: 27 * rendering/RenderObject.cpp: 28 (WebCore::RenderObject::createVisiblePosition): 29 1 30 2010-11-26 Rob Buis <rwlbuis@gmail.com> 2 31 -
trunk/WebCore/GNUmakefile.am
r72718 r72777 1324 1324 WebCore/editing/EditingBehavior.h \ 1325 1325 WebCore/editing/EditingBehaviorTypes.h \ 1326 WebCore/editing/EditingBoundary.h \ 1326 1327 WebCore/editing/EditingStyle.cpp \ 1327 1328 WebCore/editing/EditingStyle.h \ -
trunk/WebCore/WebCore.exp.in
r72446 r72777 421 421 __ZN7WebCore16enclosingIntRectERK7_NSRect 422 422 __ZN7WebCore16enclosingIntRectERKNS_9FloatRectE 423 __ZN7WebCore16isEndOfParagraphERKNS_15VisiblePositionENS_ 8Position27EditingBoundaryCrossingRuleE423 __ZN7WebCore16isEndOfParagraphERKNS_15VisiblePositionENS_27EditingBoundaryCrossingRuleE 424 424 __ZN7WebCore16jsStringSlowCaseEPN3JSC9ExecStateERNS0_9WeakGCMapIPN3WTF10StringImplEPNS0_8JSStringEEES6_ 425 425 __ZN7WebCore17CredentialStorage3getERKNS_15ProtectionSpaceE … … 432 432 __ZN7WebCore17openTemporaryFileEPKcRi 433 433 __ZN7WebCore18SearchPopupMenuMacC1EPNS_15PopupMenuClientE 434 __ZN7WebCore18isStartOfParagraphERKNS_15VisiblePositionENS_ 8Position27EditingBoundaryCrossingRuleE434 __ZN7WebCore18isStartOfParagraphERKNS_15VisiblePositionENS_27EditingBoundaryCrossingRuleE 435 435 __ZN7WebCore18pluginScriptObjectEPN3JSC9ExecStateEPNS_13JSHTMLElementE 436 436 __ZN7WebCore18proxyServersForURLERKNS_4KURLEPKNS_17NetworkingContextE … … 1130 1130 __ZNK7WebCore8Document6domainEv 1131 1131 __ZNK7WebCore8IntPointcv8_NSPointEv 1132 __ZNK7WebCore8Position10downstreamENS 0_27EditingBoundaryCrossingRuleE1132 __ZNK7WebCore8Position10downstreamENS_27EditingBoundaryCrossingRuleE 1133 1133 __ZNK7WebCore8Position25leadingWhitespacePositionENS_9EAffinityEb 1134 1134 __ZNK7WebCore8Position26trailingWhitespacePositionENS_9EAffinityEb 1135 __ZNK7WebCore8Position8upstreamENS 0_27EditingBoundaryCrossingRuleE1135 __ZNK7WebCore8Position8upstreamENS_27EditingBoundaryCrossingRuleE 1136 1136 __ZNK7WebCore9DOMWindow27pendingUnloadEventListenersEv 1137 1137 __ZNK7WebCore9FloatRectcv7_NSRectEv -
trunk/WebCore/WebCore.gypi
r72770 r72777 1392 1392 'editing/EditingBehavior.h', 1393 1393 'editing/EditingBehaviorTypes.h', 1394 'editing/EditingBoundary.h', 1394 1395 'editing/EditingStyle.cpp', 1395 1396 'editing/EditingStyle.h', -
trunk/WebCore/WebCore.pro
r72718 r72777 1711 1711 editing/EditingStyle.h \ 1712 1712 editing/EditingBehavior.h \ 1713 editing/EditingBoundary.h \ 1713 1714 editing/Editor.h \ 1714 1715 editing/FormatBlockCommand.h \ -
trunk/WebCore/WebCore.vcproj/WebCore.vcproj
r72715 r72777 46168 46168 </File> 46169 46169 <File 46170 RelativePath="..\editing\EditingBoundary.h" 46171 > 46172 </File> 46173 <File 46170 46174 RelativePath="..\editing\DeleteButtonController.cpp" 46171 46175 > -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r72718 r72777 904 904 3888F6EE128C9889000CA8E0 /* InspectorFileSystemAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3888F6EC128C9889000CA8E0 /* InspectorFileSystemAgent.cpp */; }; 905 905 3888F6EF128C9889000CA8E0 /* InspectorFileSystemAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 3888F6ED128C9889000CA8E0 /* InspectorFileSystemAgent.h */; }; 906 3AC648B2129E146500C3EB25 /* EditingBoundary.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AC648B1129E146500C3EB25 /* EditingBoundary.h */; settings = {ATTRIBUTES = (Private, ); }; }; 906 907 41002CCD0F66EDEF009E660D /* ScriptFunctionCall.h in Headers */ = {isa = PBXBuildFile; fileRef = 41002CCB0F66EDEF009E660D /* ScriptFunctionCall.h */; }; 907 908 41002CCE0F66EDEF009E660D /* ScriptFunctionCall.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41002CCC0F66EDEF009E660D /* ScriptFunctionCall.cpp */; }; … … 7011 7012 3888F6EC128C9889000CA8E0 /* InspectorFileSystemAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorFileSystemAgent.cpp; sourceTree = "<group>"; }; 7012 7013 3888F6ED128C9889000CA8E0 /* InspectorFileSystemAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorFileSystemAgent.h; sourceTree = "<group>"; }; 7014 3AC648B1129E146500C3EB25 /* EditingBoundary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditingBoundary.h; sourceTree = "<group>"; }; 7013 7015 41002CCB0F66EDEF009E660D /* ScriptFunctionCall.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptFunctionCall.h; sourceTree = "<group>"; }; 7014 7016 41002CCC0F66EDEF009E660D /* ScriptFunctionCall.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptFunctionCall.cpp; sourceTree = "<group>"; }; … … 14601 14603 4F1534DD11B532EC0021FD86 /* EditingBehavior.h */, 14602 14604 4F1534DF11B533020021FD86 /* EditingBehaviorTypes.h */, 14605 3AC648B1129E146500C3EB25 /* EditingBoundary.h */, 14603 14606 9BAB6C6B12550631001626D4 /* EditingStyle.cpp */, 14604 14607 9BAB6C6A12550631001626D4 /* EditingStyle.h */, … … 19605 19608 4F1534DE11B532EC0021FD86 /* EditingBehavior.h in Headers */, 19606 19609 4F1534E011B533020021FD86 /* EditingBehaviorTypes.h in Headers */, 19610 3AC648B2129E146500C3EB25 /* EditingBoundary.h in Headers */, 19607 19611 9BAB6C6C12550631001626D4 /* EditingStyle.h in Headers */, 19608 19612 6550B6A4099DF0270090D781 /* EditingText.h in Headers */, -
trunk/WebCore/dom/Position.cpp
r72259 r72777 1007 1007 while (position != lastPosition) { 1008 1008 lastPosition = position; 1009 position = position.downstream( Position::CanCrossEditingBoundary);1009 position = position.downstream(CanCrossEditingBoundary); 1010 1010 } 1011 1011 return position; … … 1017 1017 while (position != lastPosition) { 1018 1018 lastPosition = position; 1019 position = position.upstream( Position::CanCrossEditingBoundary);1019 position = position.upstream(CanCrossEditingBoundary); 1020 1020 } 1021 1021 return position; -
trunk/WebCore/dom/Position.h
r65852 r72777 28 28 29 29 #include "ContainerNode.h" 30 #include "EditingBoundary.h" 30 31 #include "TextAffinity.h" 31 32 #include "TextDirection.h" … … 57 58 }; 58 59 59 enum EditingBoundaryCrossingRule {60 CanCrossEditingBoundary,61 CannotCrossEditingBoundary62 };63 64 60 Position() 65 61 : m_offset(0) -
trunk/WebCore/editing/DeleteSelectionCommand.cpp
r72259 r72777 29 29 #include "Document.h" 30 30 #include "DocumentFragment.h" 31 #include "EditingBoundary.h" 31 32 #include "Editor.h" 32 33 #include "EditorClient.h" … … 740 741 741 742 Position downstreamEnd = m_selectionToDelete.end().downstream(); 742 m_needPlaceholder = isStartOfParagraph(m_selectionToDelete.visibleStart(), Position::CanCrossEditingBoundary)743 && isEndOfParagraph(m_selectionToDelete.visibleEnd(), Position::CanCrossEditingBoundary)743 m_needPlaceholder = isStartOfParagraph(m_selectionToDelete.visibleStart(), CanCrossEditingBoundary) 744 && isEndOfParagraph(m_selectionToDelete.visibleEnd(), CanCrossEditingBoundary) 744 745 && !lineBreakExistsAtVisiblePosition(m_selectionToDelete.visibleEnd()); 745 746 if (m_needPlaceholder) { -
trunk/WebCore/editing/visible_units.cpp
r72259 r72777 781 781 } 782 782 783 VisiblePosition startOfParagraph(const VisiblePosition& c, Position::EditingBoundaryCrossingRule boundaryCrossingRule)783 VisiblePosition startOfParagraph(const VisiblePosition& c, EditingBoundaryCrossingRule boundaryCrossingRule) 784 784 { 785 785 Position p = c.deepEquivalent(); … … 799 799 Node *n = startNode; 800 800 while (n) { 801 if (boundaryCrossingRule == Position::CannotCrossEditingBoundary && n->isContentEditable() != startNode->isContentEditable())801 if (boundaryCrossingRule == CannotCrossEditingBoundary && n->isContentEditable() != startNode->isContentEditable()) 802 802 break; 803 803 RenderObject *r = n->renderer(); … … 840 840 } 841 841 842 VisiblePosition endOfParagraph(const VisiblePosition &c, Position::EditingBoundaryCrossingRule boundaryCrossingRule)842 VisiblePosition endOfParagraph(const VisiblePosition &c, EditingBoundaryCrossingRule boundaryCrossingRule) 843 843 { 844 844 if (c.isNull()) … … 859 859 Node *n = startNode; 860 860 while (n) { 861 if (boundaryCrossingRule == Position::CannotCrossEditingBoundary && n->isContentEditable() != startNode->isContentEditable())861 if (boundaryCrossingRule == CannotCrossEditingBoundary && n->isContentEditable() != startNode->isContentEditable()) 862 862 break; 863 863 RenderObject *r = n->renderer(); … … 915 915 } 916 916 917 bool isStartOfParagraph(const VisiblePosition &pos, Position::EditingBoundaryCrossingRule boundaryCrossingRule)917 bool isStartOfParagraph(const VisiblePosition &pos, EditingBoundaryCrossingRule boundaryCrossingRule) 918 918 { 919 919 return pos.isNotNull() && pos == startOfParagraph(pos, boundaryCrossingRule); 920 920 } 921 921 922 bool isEndOfParagraph(const VisiblePosition &pos, Position::EditingBoundaryCrossingRule boundaryCrossingRule)922 bool isEndOfParagraph(const VisiblePosition &pos, EditingBoundaryCrossingRule boundaryCrossingRule) 923 923 { 924 924 return pos.isNotNull() && pos == endOfParagraph(pos, boundaryCrossingRule); -
trunk/WebCore/editing/visible_units.h
r70932 r72777 28 28 29 29 #include "Document.h" 30 #include "EditingBoundary.h" 30 31 #include "Position.h" 31 32 #include "TextAffinity.h" … … 62 63 63 64 // paragraphs (perhaps a misnomer, can be divided by line break elements) 64 VisiblePosition startOfParagraph(const VisiblePosition&, Position::EditingBoundaryCrossingRule = Position::CannotCrossEditingBoundary);65 VisiblePosition endOfParagraph(const VisiblePosition&, Position::EditingBoundaryCrossingRule = Position::CannotCrossEditingBoundary);65 VisiblePosition startOfParagraph(const VisiblePosition&, EditingBoundaryCrossingRule = CannotCrossEditingBoundary); 66 VisiblePosition endOfParagraph(const VisiblePosition&, EditingBoundaryCrossingRule = CannotCrossEditingBoundary); 66 67 VisiblePosition startOfNextParagraph(const VisiblePosition&); 67 68 VisiblePosition previousParagraphPosition(const VisiblePosition &, int x); 68 69 VisiblePosition nextParagraphPosition(const VisiblePosition &, int x); 69 bool isStartOfParagraph(const VisiblePosition &, Position::EditingBoundaryCrossingRule = Position::CannotCrossEditingBoundary);70 bool isEndOfParagraph(const VisiblePosition &, Position::EditingBoundaryCrossingRule = Position::CannotCrossEditingBoundary);70 bool isStartOfParagraph(const VisiblePosition &, EditingBoundaryCrossingRule = CannotCrossEditingBoundary); 71 bool isEndOfParagraph(const VisiblePosition &, EditingBoundaryCrossingRule = CannotCrossEditingBoundary); 71 72 bool inSameParagraph(const VisiblePosition &, const VisiblePosition &); 72 73 -
trunk/WebCore/rendering/RenderObject.cpp
r71754 r72777 32 32 #include "CSSStyleSelector.h" 33 33 #include "DashArray.h" 34 #include "EditingBoundary.h" 34 35 #include "FloatQuad.h" 35 36 #include "Frame.h" … … 2640 2641 // If it can be found, we prefer a visually equivalent position that is editable. 2641 2642 Position position(node, offset); 2642 Position candidate = position.downstream( Position::CanCrossEditingBoundary);2643 Position candidate = position.downstream(CanCrossEditingBoundary); 2643 2644 if (candidate.node()->isContentEditable()) 2644 2645 return VisiblePosition(candidate, affinity); 2645 candidate = position.upstream( Position::CanCrossEditingBoundary);2646 candidate = position.upstream(CanCrossEditingBoundary); 2646 2647 if (candidate.node()->isContentEditable()) 2647 2648 return VisiblePosition(candidate, affinity);
Note: See TracChangeset
for help on using the changeset viewer.