[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

dbates at webkit.org dbates at webkit.org
Wed Apr 7 23:42:01 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 93bfb75257f114ce1a530747b7f4638911bf9f52
Author: dbates at webkit.org <dbates at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sun Nov 15 23:15:07 2009 +0000

    2009-11-15  Daniel Bates  <dbates at webkit.org>
    
            No review, rolling out r50999.
            http://trac.webkit.org/changeset/50999
    
            Need to fix some issues in the Windows build. Missed some places where
            RenderTextControl::isEdited is called.
    
            * bindings/objc/DOMHTML.mm:
            (-[DOMHTMLInputElement _isEdited]):
            (-[DOMHTMLTextAreaElement _isEdited]):
            * dom/Document.cpp:
            (WebCore::Document::setFocusedNode):
            * html/HTMLInputElement.cpp:
            (WebCore::HTMLInputElement::defaultEventHandler):
            * rendering/RenderTextControl.cpp:
            (WebCore::RenderTextControl::RenderTextControl):
            (WebCore::RenderTextControl::setInnerTextValue):
            (WebCore::RenderTextControl::setUserEdited):
            (WebCore::RenderTextControl::subtreeHasChanged):
            * rendering/RenderTextControl.h:
            (WebCore::RenderTextControl::isEdited):
            (WebCore::RenderTextControl::setEdited):
            (WebCore::RenderTextControl::isUserEdited):
            * rendering/RenderTextControlSingleLine.cpp:
            (WebCore::RenderTextControlSingleLine::subtreeHasChanged):
            * wml/WMLInputElement.cpp:
            (WebCore::WMLInputElement::defaultEventHandler):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51000 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 4cc65b3..7e977fa 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,5 +1,34 @@
 2009-11-15  Daniel Bates  <dbates at webkit.org>
 
+        No review, rolling out r50999.
+        http://trac.webkit.org/changeset/50999
+
+        Need to fix some issues in the Windows build. Missed some places where
+        RenderTextControl::isEdited is called.
+
+        * bindings/objc/DOMHTML.mm:
+        (-[DOMHTMLInputElement _isEdited]):
+        (-[DOMHTMLTextAreaElement _isEdited]):
+        * dom/Document.cpp:
+        (WebCore::Document::setFocusedNode):
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::defaultEventHandler):
+        * rendering/RenderTextControl.cpp:
+        (WebCore::RenderTextControl::RenderTextControl):
+        (WebCore::RenderTextControl::setInnerTextValue):
+        (WebCore::RenderTextControl::setUserEdited):
+        (WebCore::RenderTextControl::subtreeHasChanged):
+        * rendering/RenderTextControl.h:
+        (WebCore::RenderTextControl::isEdited):
+        (WebCore::RenderTextControl::setEdited):
+        (WebCore::RenderTextControl::isUserEdited):
+        * rendering/RenderTextControlSingleLine.cpp:
+        (WebCore::RenderTextControlSingleLine::subtreeHasChanged):
+        * wml/WMLInputElement.cpp:
+        (WebCore::WMLInputElement::defaultEventHandler):
+
+2009-11-15  Daniel Bates  <dbates at webkit.org>
+
         Reviewed by Darin Adler.
 
         https://bugs.webkit.org/show_bug.cgi?id=31186
diff --git a/WebCore/bindings/objc/DOMHTML.mm b/WebCore/bindings/objc/DOMHTML.mm
index 0c69d94..1043d8e 100644
--- a/WebCore/bindings/objc/DOMHTML.mm
+++ b/WebCore/bindings/objc/DOMHTML.mm
@@ -167,7 +167,7 @@
 - (BOOL)_isEdited
 {
     WebCore::RenderObject *renderer = core(self)->renderer();
-    return renderer && [self _isTextField] && static_cast<WebCore::RenderTextControl *>(renderer)->lastChangeWasUserEdit();
+    return renderer && [self _isTextField] && static_cast<WebCore::RenderTextControl *>(renderer)->isUserEdited();
 }
 
 @end
@@ -177,7 +177,7 @@
 - (BOOL)_isEdited
 {
     WebCore::RenderObject* renderer = core(self)->renderer();
-    return renderer && static_cast<WebCore::RenderTextControl*>(renderer)->lastChangeWasUserEdit();
+    return renderer && static_cast<WebCore::RenderTextControl*>(renderer)->isUserEdited();
 }
 
 @end
diff --git a/WebCore/dom/Document.cpp b/WebCore/dom/Document.cpp
index e99ce44..913f570 100644
--- a/WebCore/dom/Document.cpp
+++ b/WebCore/dom/Document.cpp
@@ -2655,11 +2655,11 @@ bool Document::setFocusedNode(PassRefPtr<Node> newFocusedNode)
                 
         // Dispatch a change event for text fields or textareas that have been edited
         RenderObject* r = oldFocusedNode->renderer();
-        if (r && r->isTextControl() && toRenderTextControl(r)->wasChangedSinceLastChangeEvent()) {
+        if (r && r->isTextControl() && toRenderTextControl(r)->isEdited()) {
             oldFocusedNode->dispatchEvent(Event::create(eventNames().changeEvent, true, false));
             r = oldFocusedNode->renderer();
             if (r && r->isTextControl())
-                toRenderTextControl(r)->setChangedSinceLastChangeEvent(false);
+                toRenderTextControl(r)->setEdited(false);
         }
 
         // Dispatch the blur event and let the node do any other blur related activities (important for text fields)
diff --git a/WebCore/html/HTMLInputElement.cpp b/WebCore/html/HTMLInputElement.cpp
index 7e03ddd..e341d0e 100644
--- a/WebCore/html/HTMLInputElement.cpp
+++ b/WebCore/html/HTMLInputElement.cpp
@@ -1584,12 +1584,12 @@ void HTMLInputElement::defaultEventHandler(Event* evt)
         }
         // Fire onChange for text fields.
         RenderObject* r = renderer();
-        if (r && r->isTextField() && toRenderTextControl(r)->wasChangedSinceLastChangeEvent()) {
+        if (r && r->isTextField() && toRenderTextControl(r)->isEdited()) {
             dispatchFormControlChangeEvent();
             // Refetch the renderer since arbitrary JS code run during onchange can do anything, including destroying it.
             r = renderer();
             if (r && r->isTextField())
-                toRenderTextControl(r)->setChangedSinceLastChangeEvent(false);
+                toRenderTextControl(r)->setEdited(false);
         }
 
         RefPtr<HTMLFormElement> formForSubmission = form();
diff --git a/WebCore/rendering/RenderTextControl.cpp b/WebCore/rendering/RenderTextControl.cpp
index 43ec9f3..09caab9 100644
--- a/WebCore/rendering/RenderTextControl.cpp
+++ b/WebCore/rendering/RenderTextControl.cpp
@@ -70,8 +70,8 @@ static Color disabledTextColor(const Color& textColor, const Color& backgroundCo
 RenderTextControl::RenderTextControl(Node* node, bool placeholderVisible)
     : RenderBlock(node)
     , m_placeholderVisible(placeholderVisible)
-    , m_wasChangedSinceLastChangeEvent(false)
-    , m_lastChangeWasUserEdit(false)
+    , m_edited(false)
+    , m_userEdited(false)
 {
 }
 
@@ -195,16 +195,17 @@ void RenderTextControl::setInnerTextValue(const String& innerTextValue)
             ASSERT(!ec);
         }
 
-        m_lastChangeWasUserEdit = false;
+        // We set m_userEdited to false since this change was not explicty made by the user (say, via typing on the keyboard), see <rdar://problem/5359921>.
+        m_userEdited = false;
     }
 
     static_cast<Element*>(node())->setFormControlValueMatchesRenderer(true);
 }
 
-void RenderTextControl::setLastChangeWasUserEdit(bool lastChangeWasUserEdit)
+void RenderTextControl::setUserEdited(bool isUserEdited)
 {
-    m_lastChangeWasUserEdit = lastChangeWasUserEdit;
-    document()->setIgnoreAutofocus(lastChangeWasUserEdit);
+    m_userEdited = isUserEdited;
+    document()->setIgnoreAutofocus(isUserEdited);
 }
 
 int RenderTextControl::selectionStart()
@@ -311,8 +312,8 @@ int RenderTextControl::indexForVisiblePosition(const VisiblePosition& pos)
 
 void RenderTextControl::subtreeHasChanged()
 {
-    m_wasChangedSinceLastChangeEvent = true;
-    m_lastChangeWasUserEdit = true;
+    m_edited = true;
+    m_userEdited = true;
 }
 
 String RenderTextControl::finishText(Vector<UChar>& result) const
diff --git a/WebCore/rendering/RenderTextControl.h b/WebCore/rendering/RenderTextControl.h
index 394eb9c..cdd8716 100644
--- a/WebCore/rendering/RenderTextControl.h
+++ b/WebCore/rendering/RenderTextControl.h
@@ -34,11 +34,11 @@ class RenderTextControl : public RenderBlock {
 public:
     virtual ~RenderTextControl();
 
-    bool wasChangedSinceLastChangeEvent() const { return m_wasChangedSinceLastChangeEvent; }
-    void setChangedSinceLastChangeEvent(bool wasChangedSinceLastChangeEvent) { m_wasChangedSinceLastChangeEvent = wasChangedSinceLastChangeEvent; }
+    bool isEdited() const { return m_edited; }
+    void setEdited(bool isEdited) { m_edited = isEdited; }
 
-    bool lastChangeWasUserEdit() const { return m_lastChangeWasUserEdit; }
-    void setLastChangeWasUserEdit(bool lastChangeWasUserEdit);
+    bool isUserEdited() const { return m_userEdited; }
+    void setUserEdited(bool isUserEdited);
 
     int selectionStart();
     int selectionEnd();
@@ -105,8 +105,8 @@ private:
 
     String finishText(Vector<UChar>&) const;
 
-    bool m_wasChangedSinceLastChangeEvent;
-    bool m_lastChangeWasUserEdit;
+    bool m_edited;
+    bool m_userEdited;
     RefPtr<TextControlInnerTextElement> m_innerText;
 };
 
diff --git a/WebCore/rendering/RenderTextControlSingleLine.cpp b/WebCore/rendering/RenderTextControlSingleLine.cpp
index 3df1930..be800a7 100644
--- a/WebCore/rendering/RenderTextControlSingleLine.cpp
+++ b/WebCore/rendering/RenderTextControlSingleLine.cpp
@@ -150,7 +150,7 @@ void RenderTextControlSingleLine::hidePopup()
 
 void RenderTextControlSingleLine::subtreeHasChanged()
 {
-    bool wasChanged = wasChangedSinceLastChangeEvent();
+    bool wasEdited = isEdited();
     RenderTextControl::subtreeHasChanged();
 
     InputElement* input = inputElement();
@@ -167,7 +167,7 @@ void RenderTextControlSingleLine::subtreeHasChanged()
     if (input->searchEventsShouldBeDispatched())
         startSearchEventTimer();
 
-    if (!wasChanged && node()->focused()) {
+    if (!wasEdited && node()->focused()) {
         if (Frame* frame = document()->frame())
             frame->textFieldDidBeginEditing(static_cast<Element*>(node()));
     }
diff --git a/WebCore/wml/WMLInputElement.cpp b/WebCore/wml/WMLInputElement.cpp
index 95225c9..b027bf0 100644
--- a/WebCore/wml/WMLInputElement.cpp
+++ b/WebCore/wml/WMLInputElement.cpp
@@ -280,13 +280,13 @@ void WMLInputElement::defaultEventHandler(Event* evt)
     if (clickDefaultFormButton) {
         // Fire onChange for text fields.
         RenderObject* r = renderer();
-        if (r && toRenderTextControl(r)->wasChangedSinceLastChangeEvent()) {
+        if (r && toRenderTextControl(r)->isEdited()) {
             dispatchEvent(eventNames().changeEvent, true, false);
             
             // Refetch the renderer since arbitrary JS code run during onchange can do anything, including destroying it.
             r = renderer();
             if (r)
-                toRenderTextControl(r)->setChangedSinceLastChangeEvent(false);
+                toRenderTextControl(r)->setEdited(false);
         }
 
         evt->setDefaultHandled();

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list