Changeset 146744 in webkit


Ignore:
Timestamp:
Mar 24, 2013 9:58:36 PM (11 years ago)
Author:
falken@chromium.org
Message:

Refactoring: Pull Node::disabled() and Node::isInert() down to Element.
https://bugs.webkit.org/show_bug.cgi?id=112085

Reviewed by Hajime Morrita.

Node is too low a level for these methods. The plan is to rename
Element::disabled to isDisabledFormControl and to remove
Element::isEnabledFormControl.

No new tests, just refactoring.

  • dom/Element.cpp:

(WebCore::Element::disabled):
(WebCore):
(WebCore::Element::isInert):

  • dom/Element.h:

(Element):

  • dom/EventDispatcher.cpp:

(WebCore::EventDispatcher::dispatchSimulatedClick):

  • dom/GestureEvent.cpp:

(WebCore::GestureEventDispatchMediator::dispatchEvent):

  • dom/MouseEvent.cpp:

(WebCore::MouseEventDispatchMediator::dispatchEvent):

  • dom/Node.cpp:

(WebCore::Node::handleLocalEvents):
(WebCore::Node::willRespondToMouseMoveEvents):
(WebCore::Node::willRespondToMouseClickEvents):
(WebCore::Node::willRespondToTouchEvents):

  • dom/Node.h:

(Node):

Location:
trunk/Source/WebCore
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r146737 r146744  
     12013-03-24  Matt Falkenhagen  <falken@chromium.org>
     2
     3        Refactoring: Pull Node::disabled() and Node::isInert() down to Element.
     4        https://bugs.webkit.org/show_bug.cgi?id=112085
     5
     6        Reviewed by Hajime Morrita.
     7
     8        Node is too low a level for these methods. The plan is to rename
     9        Element::disabled to isDisabledFormControl and to remove
     10        Element::isEnabledFormControl.
     11
     12        No new tests, just refactoring.
     13
     14        * dom/Element.cpp:
     15        (WebCore::Element::disabled):
     16        (WebCore):
     17        (WebCore::Element::isInert):
     18        * dom/Element.h:
     19        (Element):
     20        * dom/EventDispatcher.cpp:
     21        (WebCore::EventDispatcher::dispatchSimulatedClick):
     22        * dom/GestureEvent.cpp:
     23        (WebCore::GestureEventDispatchMediator::dispatchEvent):
     24        * dom/MouseEvent.cpp:
     25        (WebCore::MouseEventDispatchMediator::dispatchEvent):
     26        * dom/Node.cpp:
     27        (WebCore::Node::handleLocalEvents):
     28        (WebCore::Node::willRespondToMouseMoveEvents):
     29        (WebCore::Node::willRespondToMouseClickEvents):
     30        (WebCore::Node::willRespondToTouchEvents):
     31        * dom/Node.h:
     32        (Node):
     33
    1342013-03-24  Alpha Lam  <hclam@chromium.org>
    235
  • trunk/Source/WebCore/dom/Element.cpp

    r146726 r146744  
    11771177}
    11781178
     1179bool Element::disabled() const
     1180{
     1181#if ENABLE(DIALOG_ELEMENT)
     1182    // FIXME: disabled and inert are separate concepts in the spec, but now we treat them as the same.
     1183    // For example, an inert, non-disabled form control should not be grayed out.
     1184    if (isInert())
     1185        return true;
     1186#endif
     1187    return false;
     1188}
     1189
     1190#if ENABLE(DIALOG_ELEMENT)
     1191bool Element::isInert() const
     1192{
     1193    Element* dialog = document()->activeModalDialog();
     1194    return dialog && !containsIncludingShadowDOM(dialog) && !dialog->containsIncludingShadowDOM(this);
     1195}
     1196#endif
     1197
    11791198Node::InsertionNotificationRequest Element::insertedInto(ContainerNode* insertionPoint)
    11801199{
  • trunk/Source/WebCore/dom/Element.h

    r146583 r146744  
    558558    virtual void dispatchFormControlChangeEvent() { }
    559559
     560    // Used for disabled form elements; if true, prevents mouse events from being dispatched
     561    // to event listeners, and prevents DOMActivate events from being sent at all.
     562    virtual bool disabled() const;
     563
     564#if ENABLE(DIALOG_ELEMENT)
     565    bool isInert() const;
     566#endif
     567
    560568#if ENABLE(SVG)
    561569    virtual bool childShouldCreateRenderer(const NodeRenderingContext&) const;
  • trunk/Source/WebCore/dom/EventDispatcher.cpp

    r145873 r146744  
    8080void EventDispatcher::dispatchSimulatedClick(Node* node, Event* underlyingEvent, SimulatedClickMouseEventOptions mouseEventOptions, SimulatedClickVisualOptions visualOptions)
    8181{
    82     if (node->disabled())
     82    if (node->isElementNode() && toElement(node)->disabled())
    8383        return;
    8484
  • trunk/Source/WebCore/dom/GestureEvent.cpp

    r146378 r146744  
    3030#include "GestureEvent.h"
    3131
     32#include "Element.h"
    3233#include <wtf/text/AtomicString.h>
    3334
     
    119120bool GestureEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) const
    120121{
    121     if (dispatcher->node()->disabled())
     122    if (dispatcher->node()->isElementNode() && toElement(dispatcher->node())->disabled())
    122123        return true;
    123124
  • trunk/Source/WebCore/dom/MouseEvent.cpp

    r145524 r146744  
    301301    }
    302302
    303     if (dispatcher->node()->disabled()) // Don't even send DOM events for disabled controls..
     303    if (dispatcher->node()->isElementNode() && toElement(dispatcher->node())->disabled()) // Don't even send DOM events for disabled controls..
    304304        return false;
    305305
  • trunk/Source/WebCore/dom/Node.cpp

    r146726 r146744  
    908908}
    909909
    910 #if ENABLE(DIALOG_ELEMENT)
    911 bool Node::isInert() const
    912 {
    913     Element* dialog = document()->activeModalDialog();
    914     return dialog && !containsIncludingShadowDOM(dialog) && !dialog->containsIncludingShadowDOM(this);
    915 }
    916 #endif
    917 
    918910unsigned Node::nodeIndex() const
    919911{
     
    23272319        return;
    23282320
    2329     if (disabled() && event->isMouseEvent())
     2321    if (isElementNode() && toElement(this)->disabled() && event->isMouseEvent())
    23302322        return;
    23312323
     
    24652457{
    24662458    dispatchScopedEvent(Event::create(eventNames().inputEvent, true, false));
    2467 }
    2468 
    2469 bool Node::disabled() const
    2470 {
    2471 #if ENABLE(DIALOG_ELEMENT)
    2472     if (isInert())
    2473         return true;
    2474 #endif
    2475     return false;
    24762459}
    24772460
     
    25352518bool Node::willRespondToMouseMoveEvents()
    25362519{
    2537     if (disabled())
     2520    if (isElementNode() && toElement(this)->disabled())
    25382521        return false;
    25392522    return hasEventListeners(eventNames().mousemoveEvent) || hasEventListeners(eventNames().mouseoverEvent) || hasEventListeners(eventNames().mouseoutEvent);
     
    25422525bool Node::willRespondToMouseClickEvents()
    25432526{
    2544     if (disabled())
     2527    if (isElementNode() && toElement(this)->disabled())
    25452528        return false;
    25462529    return isContentEditable(UserSelectAllIsAlwaysNonEditable) || hasEventListeners(eventNames().mouseupEvent) || hasEventListeners(eventNames().mousedownEvent) || hasEventListeners(eventNames().clickEvent) || hasEventListeners(eventNames().DOMActivateEvent);
     
    25502533{
    25512534#if ENABLE(TOUCH_EVENTS)
    2552     if (disabled())
     2535    if (isElementNode() && toElement(this)->disabled())
    25532536        return false;
    25542537    return hasEventListeners(eventNames().touchstartEvent) || hasEventListeners(eventNames().touchmoveEvent) || hasEventListeners(eventNames().touchcancelEvent) || hasEventListeners(eventNames().touchendEvent);
  • trunk/Source/WebCore/dom/Node.h

    r146555 r146744  
    417417    virtual Node* focusDelegate();
    418418
    419 #if ENABLE(DIALOG_ELEMENT)
    420     bool isInert() const;
    421 #endif
    422 
    423419    enum UserSelectAllTreatment {
    424420        UserSelectAllDoesNotAffectEditability,
     
    666662    virtual void defaultEventHandler(Event*);
    667663
    668     // Used for disabled form elements; if true, prevents mouse events from being dispatched
    669     // to event listeners, and prevents DOMActivate events from being sent at all.
    670     virtual bool disabled() const;
    671 
    672664    using TreeShared<Node>::ref;
    673665    using TreeShared<Node>::deref;
  • trunk/Source/WebCore/rendering/RenderThemeMac.mm

    r142810 r146744  
    139139    unsigned flags = 0;
    140140
    141     if (node->disabled())
     141    if (node->isElementNode() && toElement(node)->disabled())
    142142        flags |= MediaUIPartDisabledFlag;
    143143    else if (node->active())
Note: See TracChangeset for help on using the changeset viewer.