Changeset 145514 in webkit


Ignore:
Timestamp:
Mar 12, 2013 4:13:02 AM (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.

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:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r145511 r145514  
     12013-03-12  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.
     9
     10        No new tests, just refactoring.
     11
     12        * dom/Element.cpp:
     13        (WebCore::Element::disabled):
     14        (WebCore):
     15        (WebCore::Element::isInert):
     16        * dom/Element.h:
     17        (Element):
     18        * dom/EventDispatcher.cpp:
     19        (WebCore::EventDispatcher::dispatchSimulatedClick):
     20        * dom/GestureEvent.cpp:
     21        (WebCore::GestureEventDispatchMediator::dispatchEvent):
     22        * dom/MouseEvent.cpp:
     23        (WebCore::MouseEventDispatchMediator::dispatchEvent):
     24        * dom/Node.cpp:
     25        (WebCore::Node::handleLocalEvents):
     26        (WebCore::Node::willRespondToMouseMoveEvents):
     27        (WebCore::Node::willRespondToMouseClickEvents):
     28        (WebCore::Node::willRespondToTouchEvents):
     29        * dom/Node.h:
     30        (Node):
     31
    1322013-03-12  Marja Hölttä  <marja@chromium.org>
    233
  • trunk/Source/WebCore/dom/Element.cpp

    r145377 r145514  
    11531153}
    11541154
     1155bool Element::disabled() const
     1156{
     1157#if ENABLE(DIALOG_ELEMENT)
     1158    // FIXME: disabled and inert are separate concepts in the spec, but now we treat them as the same.
     1159    // For example, an inert, non-disabled form control should not be grayed out.
     1160    if (isInert())
     1161        return true;
     1162#endif
     1163    return false;
     1164}
     1165
     1166#if ENABLE(DIALOG_ELEMENT)
     1167bool Element::isInert() const
     1168{
     1169    Element* dialog = document()->activeModalDialog();
     1170    return dialog && !containsIncludingShadowDOM(dialog) && !dialog->containsIncludingShadowDOM(this);
     1171}
     1172#endif
     1173
    11551174Node::InsertionNotificationRequest Element::insertedInto(ContainerNode* insertionPoint)
    11561175{
  • trunk/Source/WebCore/dom/Element.h

    r145036 r145514  
    547547    virtual void dispatchFormControlChangeEvent() { }
    548548
     549    // Used for disabled form elements; if true, prevents mouse events from being dispatched
     550    // to event listeners, and prevents DOMActivate events from being sent at all.
     551    virtual bool disabled() const;
     552
     553#if ENABLE(DIALOG_ELEMENT)
     554    bool isInert() const;
     555#endif
     556
    549557#if ENABLE(SVG)
    550558    virtual bool childShouldCreateRenderer(const NodeRenderingContext&) const;
  • trunk/Source/WebCore/dom/EventDispatcher.cpp

    r143426 r145514  
    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

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

    r144553 r145514  
    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

    r145340 r145514  
    903903}
    904904
    905 #if ENABLE(DIALOG_ELEMENT)
    906 bool Node::isInert() const
    907 {
    908     Element* dialog = document()->activeModalDialog();
    909     return dialog && !containsIncludingShadowDOM(dialog) && !dialog->containsIncludingShadowDOM(this);
    910 }
    911 #endif
    912 
    913905unsigned Node::nodeIndex() const
    914906{
     
    23132305        return;
    23142306
    2315     if (disabled() && event->isMouseEvent())
     2307    if (isElementNode() && toElement(this)->disabled() && event->isMouseEvent())
    23162308        return;
    23172309
     
    24512443{
    24522444    dispatchScopedEvent(Event::create(eventNames().inputEvent, true, false));
    2453 }
    2454 
    2455 bool Node::disabled() const
    2456 {
    2457 #if ENABLE(DIALOG_ELEMENT)
    2458     if (isInert())
    2459         return true;
    2460 #endif
    2461     return false;
    24622445}
    24632446
     
    25212504bool Node::willRespondToMouseMoveEvents()
    25222505{
    2523     if (disabled())
     2506    if (isElementNode() && toElement(this)->disabled())
    25242507        return false;
    25252508    return hasEventListeners(eventNames().mousemoveEvent) || hasEventListeners(eventNames().mouseoverEvent) || hasEventListeners(eventNames().mouseoutEvent);
     
    25282511bool Node::willRespondToMouseClickEvents()
    25292512{
    2530     if (disabled())
     2513    if (isElementNode() && toElement(this)->disabled())
    25312514        return false;
    25322515    return isContentEditable(UserSelectAllIsAlwaysNonEditable) || hasEventListeners(eventNames().mouseupEvent) || hasEventListeners(eventNames().mousedownEvent) || hasEventListeners(eventNames().clickEvent) || hasEventListeners(eventNames().DOMActivateEvent);
     
    25362519{
    25372520#if ENABLE(TOUCH_EVENTS)
    2538     if (disabled())
     2521    if (isElementNode() && toElement(this)->disabled())
    25392522        return false;
    25402523    return hasEventListeners(eventNames().touchstartEvent) || hasEventListeners(eventNames().touchmoveEvent) || hasEventListeners(eventNames().touchcancelEvent) || hasEventListeners(eventNames().touchendEvent);
  • trunk/Source/WebCore/dom/Node.h

    r145340 r145514  
    415415    virtual Node* focusDelegate();
    416416
    417 #if ENABLE(DIALOG_ELEMENT)
    418     bool isInert() const;
    419 #endif
    420 
    421417    enum UserSelectAllTreatment {
    422418        UserSelectAllDoesNotAffectEditability,
     
    664660    virtual void defaultEventHandler(Event*);
    665661
    666     // Used for disabled form elements; if true, prevents mouse events from being dispatched
    667     // to event listeners, and prevents DOMActivate events from being sent at all.
    668     virtual bool disabled() const;
    669 
    670662    using TreeShared<Node>::ref;
    671663    using TreeShared<Node>::deref;
Note: See TracChangeset for help on using the changeset viewer.