-
tkent@chromium.org authored
https://bugs.webkit.org/show_bug.cgi?id=27968 Reviewed by Adele Peterson. WebCore: Introduce SpinButtonElement. It is a shadow element class for spin buttons. If the upper side of the element is clicked, calls HTMLInputElement::stepUpFromRenderer(1). If the lower button is clicked, calls HTMLInputElement::stepUpFromRenderer(-1). SpinButtonElement tracks the mouse pointer position, and RenderTheme sets ControlStates::SpinUpState if the pointer is on the upper side. Test: platform/mac/fast/forms/input-number-click.html * dom/Element.h: (WebCore::Element::isSpinButtonElement): * editing/VisibleSelection.cpp: (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): Remove an assertion. lastEditablePositionBeforePositionInRoot() can return null in a case that m_end is at a shadow element (a spin button) and baseRoot is another shadow element (inner text block) in the same node (an INPUT element). * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::stepUpFromRenderer): * html/HTMLInputElement.h: (WebCore::HTMLInputElement::hasSpinButton): Add types supporting step attribute except RANGE. * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::nodeAtPoint): (WebCore::RenderTextControlSingleLine::forwardEvent): (WebCore::RenderTextControlSingleLine::preferredContentWidth): (WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded): * rendering/RenderTextControlSingleLine.h: * rendering/RenderTheme.cpp: (WebCore::RenderTheme::controlStatesForRenderer): (WebCore::RenderTheme::isSpinUpButtonPartPressed): (WebCore::RenderTheme::isSpinUpButtonPartHovered): * rendering/RenderTheme.h: * rendering/TextControlInnerElements.cpp: (WebCore::SpinButtonElement::SpinButtonElement): (WebCore::SpinButtonElement::defaultEventHandler): * rendering/TextControlInnerElements.h: (WebCore::SpinButtonElement::isSpinButtonElement): (WebCore::SpinButtonElement::isEnabledFormControl): (WebCore::SpinButtonElement::onUpButton): LayoutTests: * platform/mac/fast/forms/input-number-click-expected.txt: Added. * platform/mac/fast/forms/input-number-click.html: Added. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58564 268f45cc-cd09-0410-ab3c-d52691b4dbfc
e3920baf