-
simon.fraser@apple.com authored
Reviewed by Darin Adler https://bugs.webkit.org/show_bug.cgi?id=24733 Fix hit testing on video controls after full page zoom by fixing wider issue with event->pageX(), pageY() with zooming. pageX and pageY are "fixed" to be invariant under zooming (for JavaScript), so we keep an actual page point around in MouseEvent::absoluteLocation() to avoid the need to factor in zooming everywhere. * dom/MouseRelatedEvent.cpp: (WebCore::MouseRelatedEvent::initCoordinates): (WebCore::MouseRelatedEvent::computePageLocation): * dom/MouseRelatedEvent.h: (WebCore::MouseRelatedEvent::absoluteLocation): (WebCore::MouseRelatedEvent::setAbsoluteLocation): Member var, and getter and setter for absoluteLocation. New method, computePageLocation(), to compute the actual page point, and call it when creating and initting mouse-related events. * dom/Node.cpp: (WebCore::Node::dispatchMouseEvent): (WebCore::Node::dispatchWheelEvent): Keep non-adjusted pageX and pageY around, and call setAbsoluteLocation() on the event to replace a potentially rounded point. * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): Clean up slider handling code. * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Add FIXME comment for use of offsetX/offsetY. * page/ContextMenuController.cpp: (WebCore::ContextMenuController::handleContextMenuEvent): Use absoluteLocation() when hit testing for context menus. * rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::userResize): Use absoluteLocation() when resizing frames. * rendering/RenderMedia.cpp: (WebCore::RenderMedia::forwardEvent): Use absoluteLocation() when hit testing media controls. * rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler): (WebCore::RenderSlider::mouseEventIsInThumb): Use absoluteLocation() when handling slider events. (WebCore::RenderSlider::forwardEvent): Factor some code out of HTMLInputElement::defaultEventHandler(). * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::forwardEvent): Use absoluteLocation() when hit testing search field buttons, which fixees bugs in the search field with zooming. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@41899 268f45cc-cd09-0410-ab3c-d52691b4dbfc
032683d8