Title: [116798] trunk/Source/WebCore
Revision
116798
Author
[email protected]
Date
2012-05-11 13:09:13 -0700 (Fri, 11 May 2012)

Log Message

Add helper function for node()->rootEditableElement() == node()
https://bugs.webkit.org/show_bug.cgi?id=86217

Patch by Shezan Baig <[email protected]> on 2012-05-11
Reviewed by Ryosuke Niwa.

Added Node::isRootEditableElement and updated existing code that did
(node->rootEditableElement() == node) to use isRootEditableElement
instead.

No new tests. No change in behavior.

* dom/Node.cpp:
(WebCore::Node::isRootEditableElement):
(WebCore):
* dom/Node.h:
(Node):
Added new helper function.

* dom/Document.cpp:
(WebCore::Document::setFocusedNode):
* dom/Element.cpp:
(WebCore::Element::updateFocusAppearance):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::removeNode):
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
* page/FocusController.cpp:
(WebCore::FocusController::setFocusedNode):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::hasLineIfEmpty):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::addOverflowFromInlineChildren):
Updates to existing code to use the new helper function.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (116797 => 116798)


--- trunk/Source/WebCore/ChangeLog	2012-05-11 20:07:12 UTC (rev 116797)
+++ trunk/Source/WebCore/ChangeLog	2012-05-11 20:09:13 UTC (rev 116798)
@@ -1,3 +1,41 @@
+2012-05-11  Shezan Baig  <[email protected]>
+
+        Add helper function for node()->rootEditableElement() == node()
+        https://bugs.webkit.org/show_bug.cgi?id=86217
+
+        Reviewed by Ryosuke Niwa.
+
+        Added Node::isRootEditableElement and updated existing code that did
+        (node->rootEditableElement() == node) to use isRootEditableElement
+        instead.
+
+        No new tests. No change in behavior.
+
+        * dom/Node.cpp:
+        (WebCore::Node::isRootEditableElement):
+        (WebCore):
+        * dom/Node.h:
+        (Node):
+        Added new helper function.
+
+        * dom/Document.cpp:
+        (WebCore::Document::setFocusedNode):
+        * dom/Element.cpp:
+        (WebCore::Element::updateFocusAppearance):
+        * editing/CompositeEditCommand.cpp:
+        (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
+        * editing/DeleteSelectionCommand.cpp:
+        (WebCore::DeleteSelectionCommand::removeNode):
+        * editing/InsertParagraphSeparatorCommand.cpp:
+        (WebCore::InsertParagraphSeparatorCommand::doApply):
+        * page/FocusController.cpp:
+        (WebCore::FocusController::setFocusedNode):
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::hasLineIfEmpty):
+        * rendering/RenderBlockLineLayout.cpp:
+        (WebCore::RenderBlock::addOverflowFromInlineChildren):
+        Updates to existing code to use the new helper function.
+
 2012-05-11  Shawn Singh  <[email protected]>
 
         [chromium] Create WebTransformationMatrix interface for chromium platform

Modified: trunk/Source/WebCore/dom/Document.cpp (116797 => 116798)


--- trunk/Source/WebCore/dom/Document.cpp	2012-05-11 20:07:12 UTC (rev 116797)
+++ trunk/Source/WebCore/dom/Document.cpp	2012-05-11 20:09:13 UTC (rev 116798)
@@ -3689,7 +3689,7 @@
         if (oldFocusedNode == this && oldFocusedNode->hasOneRef())
             return true;
             
-        if (oldFocusedNode == oldFocusedNode->rootEditableElement())
+        if (oldFocusedNode->isRootEditableElement())
             frame()->editor()->didEndEditing();
 
         if (view()) {
@@ -3702,7 +3702,7 @@
     }
 
     if (newFocusedNode) {
-        if (newFocusedNode == newFocusedNode->rootEditableElement() && !acceptsEditingFocus(newFocusedNode.get())) {
+        if (newFocusedNode->isRootEditableElement() && !acceptsEditingFocus(newFocusedNode.get())) {
             // delegate blocks focus change
             focusChangeBlocked = true;
             goto SetFocusedNodeDone;
@@ -3738,7 +3738,7 @@
         }
         m_focusedNode->setFocus(true);
 
-        if (m_focusedNode == m_focusedNode->rootEditableElement())
+        if (m_focusedNode->isRootEditableElement())
             frame()->editor()->didBeginEditing();
 
         // eww, I suck. set the qt focus correctly

Modified: trunk/Source/WebCore/dom/Element.cpp (116797 => 116798)


--- trunk/Source/WebCore/dom/Element.cpp	2012-05-11 20:07:12 UTC (rev 116797)
+++ trunk/Source/WebCore/dom/Element.cpp	2012-05-11 20:09:13 UTC (rev 116798)
@@ -1588,7 +1588,7 @@
 
 void Element::updateFocusAppearance(bool /*restorePreviousSelection*/)
 {
-    if (this == rootEditableElement()) { 
+    if (isRootEditableElement()) {
         Frame* frame = document()->frame();
         if (!frame)
             return;

Modified: trunk/Source/WebCore/dom/Node.cpp (116797 => 116798)


--- trunk/Source/WebCore/dom/Node.cpp	2012-05-11 20:07:12 UTC (rev 116797)
+++ trunk/Source/WebCore/dom/Node.cpp	2012-05-11 20:09:13 UTC (rev 116798)
@@ -1567,6 +1567,11 @@
     return 0;
 }
 
+bool Node::isRootEditableElement() const
+{
+    return rendererIsEditable() && isElementNode() && (!parentNode() || !parentNode()->rendererIsEditable() || hasTagName(bodyTag));
+}
+
 Element* Node::rootEditableElement(EditableType editableType) const
 {
     if (editableType == HasEditableAXRole)

Modified: trunk/Source/WebCore/dom/Node.h (116797 => 116798)


--- trunk/Source/WebCore/dom/Node.h	2012-05-11 20:07:12 UTC (rev 116797)
+++ trunk/Source/WebCore/dom/Node.h	2012-05-11 20:09:13 UTC (rev 116798)
@@ -271,7 +271,8 @@
 
     // enclosingBlockFlowElement() is deprecated. Use enclosingBlock instead.
     Element* enclosingBlockFlowElement() const;
-    
+
+    bool isRootEditableElement() const;
     Element* rootEditableElement() const;
     Element* rootEditableElement(EditableType) const;
 

Modified: trunk/Source/WebCore/editing/CompositeEditCommand.cpp (116797 => 116798)


--- trunk/Source/WebCore/editing/CompositeEditCommand.cpp	2012-05-11 20:07:12 UTC (rev 116797)
+++ trunk/Source/WebCore/editing/CompositeEditCommand.cpp	2012-05-11 20:09:13 UTC (rev 116798)
@@ -971,7 +971,7 @@
     RefPtr<Node> lastNode;
     RefPtr<Node> outerNode = passedOuterNode;
 
-    if (outerNode == outerNode->rootEditableElement()) {
+    if (outerNode->isRootEditableElement()) {
         topNode = blockElement;
         lastNode = blockElement;
     } else {

Modified: trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp (116797 => 116798)


--- trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp	2012-05-11 20:07:12 UTC (rev 116797)
+++ trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp	2012-05-11 20:09:13 UTC (rev 116798)
@@ -352,7 +352,7 @@
         }
     }
     
-    if (isTableStructureNode(node.get()) || node == node->rootEditableElement()) {
+    if (isTableStructureNode(node.get()) || node->isRootEditableElement()) {
         // Do not remove an element of table structure; remove its contents.
         // Likewise for the root editable element.
         Node* child = node->firstChild();

Modified: trunk/Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp (116797 => 116798)


--- trunk/Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp	2012-05-11 20:07:12 UTC (rev 116797)
+++ trunk/Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp	2012-05-11 20:09:13 UTC (rev 116798)
@@ -201,7 +201,7 @@
 
     // Create block to be inserted.
     RefPtr<Element> blockToInsert;
-    if (startBlock == startBlock->rootEditableElement()) {
+    if (startBlock->isRootEditableElement()) {
         blockToInsert = createDefaultParagraphElement(document());
         nestNewBlock = true;
     } else if (shouldUseDefaultParagraphElement(startBlock.get())) 

Modified: trunk/Source/WebCore/page/FocusController.cpp (116797 => 116798)


--- trunk/Source/WebCore/page/FocusController.cpp	2012-05-11 20:07:12 UTC (rev 116797)
+++ trunk/Source/WebCore/page/FocusController.cpp	2012-05-11 20:09:13 UTC (rev 116798)
@@ -611,7 +611,7 @@
         return true;
 
     // FIXME: Might want to disable this check for caretBrowsing
-    if (oldFocusedNode && oldFocusedNode->rootEditableElement() == oldFocusedNode && !relinquishesEditingFocus(oldFocusedNode))
+    if (oldFocusedNode && oldFocusedNode->isRootEditableElement() && !relinquishesEditingFocus(oldFocusedNode))
         return false;
 
     m_page->editorClient()->willSetInputMethodState();

Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (116797 => 116798)


--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2012-05-11 20:07:12 UTC (rev 116797)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	2012-05-11 20:09:13 UTC (rev 116798)
@@ -5698,7 +5698,7 @@
     if (!node())
         return false;
     
-    if (node()->rendererIsEditable() && node()->rootEditableElement() == node())
+    if (node()->isRootEditableElement())
         return true;
     
     if (node()->isShadowRoot() && (node()->shadowHost()->hasTagName(inputTag)))

Modified: trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp (116797 => 116798)


--- trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp	2012-05-11 20:07:12 UTC (rev 116797)
+++ trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp	2012-05-11 20:09:13 UTC (rev 116798)
@@ -2668,7 +2668,7 @@
 {
     LayoutUnit endPadding = hasOverflowClip() ? paddingEnd() : ZERO_LAYOUT_UNIT;
     // FIXME: Need to find another way to do this, since scrollbars could show when we don't want them to.
-    if (hasOverflowClip() && !endPadding && node() && node()->rendererIsEditable() && node() == node()->rootEditableElement() && style()->isLeftToRightDirection())
+    if (hasOverflowClip() && !endPadding && node() && node()->isRootEditableElement() && style()->isLeftToRightDirection())
         endPadding = 1;
     for (RootInlineBox* curr = firstRootBox(); curr; curr = curr->nextRootBox()) {
         addLayoutOverflow(curr->paddedLayoutOverflowRect(endPadding));
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to