Title: [90983] trunk/Source/WebCore
Revision
90983
Author
[email protected]
Date
2011-07-14 00:08:42 -0700 (Thu, 14 Jul 2011)

Log Message

Move forwardEvent from RenderTextControl to HTMLTextFormControlElement
https://bugs.webkit.org/show_bug.cgi?id=64475

Reviewed by Kent Tamura.

Moved forwardEvent from RenderTextControl, RenderTextControlSingleLine, and RenderTextControlMultiLine
to HTMLTextFormControlElement, HTMLInputElement, and HTMLTextAreaElement.

This removes the last dependency on Event.h and EventNames.h in the cpp files for the above render
objects classes.

* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::defaultEventHandler):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::forwardEvent):
* html/HTMLTextFormControlElement.h:
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::forwardEvent):
* rendering/RenderTextControl.cpp:
* rendering/RenderTextControl.h:
* rendering/RenderTextControlMultiLine.cpp:
* rendering/RenderTextControlMultiLine.h:
* rendering/RenderTextControlSingleLine.cpp:
* rendering/RenderTextControlSingleLine.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (90982 => 90983)


--- trunk/Source/WebCore/ChangeLog	2011-07-14 06:27:57 UTC (rev 90982)
+++ trunk/Source/WebCore/ChangeLog	2011-07-14 07:08:42 UTC (rev 90983)
@@ -1,3 +1,30 @@
+2011-07-13  Ryosuke Niwa  <[email protected]>
+
+        Move forwardEvent from RenderTextControl to HTMLTextFormControlElement
+        https://bugs.webkit.org/show_bug.cgi?id=64475
+
+        Reviewed by Kent Tamura.
+
+        Moved forwardEvent from RenderTextControl, RenderTextControlSingleLine, and RenderTextControlMultiLine
+        to HTMLTextFormControlElement, HTMLInputElement, and HTMLTextAreaElement.
+
+        This removes the last dependency on Event.h and EventNames.h in the cpp files for the above render
+        objects classes.
+
+        * html/HTMLTextAreaElement.cpp:
+        (WebCore::HTMLTextAreaElement::defaultEventHandler):
+        * html/HTMLTextFormControlElement.cpp:
+        (WebCore::HTMLTextFormControlElement::forwardEvent):
+        * html/HTMLTextFormControlElement.h:
+        * html/TextFieldInputType.cpp:
+        (WebCore::TextFieldInputType::forwardEvent):
+        * rendering/RenderTextControl.cpp:
+        * rendering/RenderTextControl.h:
+        * rendering/RenderTextControlMultiLine.cpp:
+        * rendering/RenderTextControlMultiLine.h:
+        * rendering/RenderTextControlSingleLine.cpp:
+        * rendering/RenderTextControlSingleLine.h:
+
 2011-07-13  Ilya Tikhonovsky  <[email protected]>
 
         Web Inspector: if you rename an element into the INPUT element the browser will crash.

Modified: trunk/Source/WebCore/html/HTMLTextAreaElement.cpp (90982 => 90983)


--- trunk/Source/WebCore/html/HTMLTextAreaElement.cpp	2011-07-14 06:27:57 UTC (rev 90982)
+++ trunk/Source/WebCore/html/HTMLTextAreaElement.cpp	2011-07-14 07:08:42 UTC (rev 90983)
@@ -235,7 +235,7 @@
 void HTMLTextAreaElement::defaultEventHandler(Event* event)
 {
     if (renderer() && (event->isMouseEvent() || event->isDragEvent() || event->isWheelEvent() || event->type() == eventNames().blurEvent))
-        toRenderTextControlMultiLine(renderer())->forwardEvent(event);
+        forwardEvent(event);
     else if (renderer() && event->isBeforeTextInsertedEvent())
         handleBeforeTextInsertedEvent(static_cast<BeforeTextInsertedEvent*>(event));
 

Modified: trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp (90982 => 90983)


--- trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp	2011-07-14 06:27:57 UTC (rev 90982)
+++ trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp	2011-07-14 07:08:42 UTC (rev 90983)
@@ -89,6 +89,13 @@
     HTMLFormControlElementWithState::defaultEventHandler(event);
 }
 
+void HTMLTextFormControlElement::forwardEvent(Event* event)
+{
+    if (event->type() == eventNames().blurEvent || event->type() == eventNames().focusEvent)
+        return;
+    innerTextElement()->defaultEventHandler(event);
+}
+
 String HTMLTextFormControlElement::strippedPlaceholder() const
 {
     // According to the HTML5 specification, we need to remove CR and LF from

Modified: trunk/Source/WebCore/html/HTMLTextFormControlElement.h (90982 => 90983)


--- trunk/Source/WebCore/html/HTMLTextFormControlElement.h	2011-07-14 06:27:57 UTC (rev 90982)
+++ trunk/Source/WebCore/html/HTMLTextFormControlElement.h	2011-07-14 07:08:42 UTC (rev 90983)
@@ -39,6 +39,8 @@
 
     virtual ~HTMLTextFormControlElement();
 
+    void forwardEvent(Event*);
+
     virtual void insertedIntoDocument();
 
     // The derived class should return true if placeholder processing is needed.
@@ -74,7 +76,6 @@
 
 protected:
     HTMLTextFormControlElement(const QualifiedName&, Document*, HTMLFormElement*);
-
     void updatePlaceholderVisibility(bool);
     virtual void updatePlaceholderText() = 0;
 

Modified: trunk/Source/WebCore/html/TextFieldInputType.cpp (90982 => 90983)


--- trunk/Source/WebCore/html/TextFieldInputType.cpp	2011-07-14 06:27:57 UTC (rev 90982)
+++ trunk/Source/WebCore/html/TextFieldInputType.cpp	2011-07-14 07:08:42 UTC (rev 90983)
@@ -37,6 +37,7 @@
 #include "HTMLInputElement.h"
 #include "KeyboardEvent.h"
 #include "Page.h"
+#include "RenderLayer.h"
 #include "RenderTextControlSingleLine.h"
 #include "RenderTheme.h"
 #include "ShadowRoot.h"
@@ -115,8 +116,20 @@
 
 void TextFieldInputType::forwardEvent(Event* event)
 {
-    if (element()->renderer() && (event->isMouseEvent() || event->isDragEvent() || event->isWheelEvent() || event->type() == eventNames().blurEvent || event->type() == eventNames().focusEvent))
-        toRenderTextControlSingleLine(element()->renderer())->forwardEvent(event);
+    if (element()->renderer() && (event->isMouseEvent() || event->isDragEvent() || event->isWheelEvent() || event->type() == eventNames().blurEvent || event->type() == eventNames().focusEvent)) {
+        RenderTextControlSingleLine* renderTextControl = toRenderTextControlSingleLine(element()->renderer());
+        if (event->type() == eventNames().blurEvent) {
+            if (RenderBox* innerTextRenderer = innerTextElement()->renderBox()) {
+                if (RenderLayer* innerLayer = innerTextRenderer->layer())
+                    innerLayer->scrollToOffset(!renderTextControl->style()->isLeftToRightDirection() ? innerLayer->scrollWidth() : 0, 0, RenderLayer::ScrollOffsetClamped);
+            }
+
+            renderTextControl->capsLockStateMayHaveChanged();
+        } else if (event->type() == eventNames().focusEvent)
+            renderTextControl->capsLockStateMayHaveChanged();
+
+        element()->forwardEvent(event);
+    }
 }
 
 bool TextFieldInputType::shouldSubmitImplicitly(Event* event)

Modified: trunk/Source/WebCore/rendering/RenderTextControl.cpp (90982 => 90983)


--- trunk/Source/WebCore/rendering/RenderTextControl.cpp	2011-07-14 06:27:57 UTC (rev 90982)
+++ trunk/Source/WebCore/rendering/RenderTextControl.cpp	2011-07-14 07:08:42 UTC (rev 90983)
@@ -24,10 +24,7 @@
 
 #include "AXObjectCache.h"
 #include "Editor.h"
-#include "Event.h"
-#include "EventNames.h"
 #include "Frame.h"
-#include "FrameSelection.h"
 #include "HTMLBRElement.h"
 #include "HTMLInputElement.h"
 #include "HTMLNames.h"
@@ -318,13 +315,6 @@
     result.setLocalPoint(pointInContainer - toSize(adjustedLocation + innerText->renderBox()->location()));
 }
 
-void RenderTextControl::forwardEvent(Event* event)
-{
-    if (event->type() == eventNames().blurEvent || event->type() == eventNames().focusEvent)
-        return;
-    innerTextElement()->defaultEventHandler(event);
-}
-
 static const char* fontFamiliesWithInvalidCharWidth[] = {
     "American Typewriter",
     "Arial Hebrew",

Modified: trunk/Source/WebCore/rendering/RenderTextControl.h (90982 => 90983)


--- trunk/Source/WebCore/rendering/RenderTextControl.h	2011-07-14 06:27:57 UTC (rev 90982)
+++ trunk/Source/WebCore/rendering/RenderTextControl.h	2011-07-14 07:08:42 UTC (rev 90983)
@@ -57,7 +57,6 @@
     virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
 
     void hitInnerTextElement(HitTestResult&, const LayoutPoint& pointInContainer, const LayoutPoint& accumulatedOffset);
-    void forwardEvent(Event*);
 
     int textBlockWidth() const;
     int textBlockHeight() const;

Modified: trunk/Source/WebCore/rendering/RenderTextControlMultiLine.cpp (90982 => 90983)


--- trunk/Source/WebCore/rendering/RenderTextControlMultiLine.cpp	2011-07-14 06:27:57 UTC (rev 90982)
+++ trunk/Source/WebCore/rendering/RenderTextControlMultiLine.cpp	2011-07-14 07:08:42 UTC (rev 90983)
@@ -22,8 +22,6 @@
 #include "config.h"
 #include "RenderTextControlMultiLine.h"
 
-#include "Event.h"
-#include "EventNames.h"
 #include "Frame.h"
 #include "HTMLNames.h"
 #include "HTMLTextAreaElement.h"
@@ -70,11 +68,6 @@
     return true;
 }
 
-void RenderTextControlMultiLine::forwardEvent(Event* event)
-{
-    RenderTextControl::forwardEvent(event);
-}
-
 float RenderTextControlMultiLine::getAvgCharWidth(AtomicString family)
 {
     // Since Lucida Grande is the default font, we want this to match the width

Modified: trunk/Source/WebCore/rendering/RenderTextControlMultiLine.h (90982 => 90983)


--- trunk/Source/WebCore/rendering/RenderTextControlMultiLine.h	2011-07-14 06:27:57 UTC (rev 90982)
+++ trunk/Source/WebCore/rendering/RenderTextControlMultiLine.h	2011-07-14 07:08:42 UTC (rev 90983)
@@ -31,8 +31,6 @@
     RenderTextControlMultiLine(Node*);
     virtual ~RenderTextControlMultiLine();
 
-    void forwardEvent(Event*);
-
 private:
     virtual bool isTextArea() const { return true; }
 

Modified: trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp (90982 => 90983)


--- trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp	2011-07-14 06:27:57 UTC (rev 90982)
+++ trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp	2011-07-14 07:08:42 UTC (rev 90983)
@@ -27,8 +27,6 @@
 #include "CSSFontSelector.h"
 #include "CSSStyleSelector.h"
 #include "Chrome.h"
-#include "Event.h"
-#include "EventNames.h"
 #include "Frame.h"
 #include "FrameSelection.h"
 #include "FrameView.h"
@@ -36,12 +34,12 @@
 #include "HTMLNames.h"
 #include "HitTestResult.h"
 #include "LocalizedStrings.h"
-#include "MouseEvent.h"
 #include "Page.h"
 #include "PlatformKeyboardEvent.h"
 #include "RenderLayer.h"
 #include "RenderScrollbar.h"
 #include "RenderTheme.h"
+#include "SearchPopupMenu.h"
 #include "Settings.h"
 #include "SimpleFontData.h"
 #include "TextControlInnerElements.h"
@@ -363,23 +361,6 @@
     return true;
 }
 
-void RenderTextControlSingleLine::forwardEvent(Event* event)
-{
-    RenderBox* innerTextRenderer = innerTextElement()->renderBox();
-
-    if (event->type() == eventNames().blurEvent) {
-        if (innerTextRenderer) {
-            if (RenderLayer* innerLayer = innerTextRenderer->layer())
-                innerLayer->scrollToOffset(!style()->isLeftToRightDirection() ? innerLayer->scrollWidth() : 0, 0, RenderLayer::ScrollOffsetClamped);
-        }
-
-        capsLockStateMayHaveChanged();
-    } else if (event->type() == eventNames().focusEvent)
-        capsLockStateMayHaveChanged();
-
-    RenderTextControl::forwardEvent(event);
-}
-
 void RenderTextControlSingleLine::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
 {
     m_desiredInnerTextHeight = -1;

Modified: trunk/Source/WebCore/rendering/RenderTextControlSingleLine.h (90982 => 90983)


--- trunk/Source/WebCore/rendering/RenderTextControlSingleLine.h	2011-07-14 06:27:57 UTC (rev 90982)
+++ trunk/Source/WebCore/rendering/RenderTextControlSingleLine.h	2011-07-14 07:08:42 UTC (rev 90983)
@@ -23,15 +23,14 @@
 #ifndef RenderTextControlSingleLine_h
 #define RenderTextControlSingleLine_h
 
-#include "HTMLInputElement.h"
 #include "PopupMenuClient.h"
 #include "RenderTextControl.h"
-#include "SearchPopupMenu.h"
 #include "Timer.h"
 
 namespace WebCore {
 
 class HTMLInputElement;
+class SearchPopupMenu;
 
 class RenderTextControlSingleLine : public RenderTextControl, private PopupMenuClient {
 public:
@@ -48,8 +47,6 @@
     void showPopup();
     void hidePopup();
 
-    void forwardEvent(Event*);
-
     void capsLockStateMayHaveChanged();
 
 private:
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to