Changeset 154673 in webkit
- Timestamp:
- Aug 27, 2013 3:09:06 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 7 added
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r154662 r154673 1 2013-08-27 Christophe Dumez <ch.dumez@sisa.samsung.com> 2 3 Implement DOM3 wheel event 4 https://bugs.webkit.org/show_bug.cgi?id=94081 5 6 Reviewed by Darin Adler. 7 8 Add several layout tests to check support for DOM3 wheel event. 9 10 * fast/events/wheelevent-basic-expected.txt: Added. 11 * fast/events/wheelevent-basic.html: Added. 12 * fast/events/wheelevent-constructor-expected.txt: Added. 13 * fast/events/wheelevent-constructor.html: Added. 14 * fast/events/wheelevent-mousewheel-interaction-expected.txt: Added. 15 * fast/events/wheelevent-mousewheel-interaction.html: Added. 16 * platform/efl/fast/events/wheelevent-basic-expected.txt: Added. 17 1 18 2013-08-26 Ryosuke Niwa <rniwa@webkit.org> 2 19 -
trunk/Source/WebCore/ChangeLog
r154672 r154673 1 2013-08-27 Christophe Dumez <ch.dumez@sisa.samsung.com> 2 3 Implement DOM3 wheel event 4 https://bugs.webkit.org/show_bug.cgi?id=94081 5 6 Reviewed by Darin Adler. 7 8 Add support for DOM Level 3 WheelEvent: 9 http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent 10 11 Firefox, IE10 and since recently Blink already support it so 12 it increases our cross-browser compatibility. 13 14 The non-standard 'mousewheel' event is still supported for backward 15 compatibility. Note that the deltas returned by the mousewheel and 16 the wheel events are not identical: 17 - They have opposite signs. 18 - The wheel event reports the actual amount of pixels that should be 19 scrolled while the legacy mousewheel event reports a factor of the 20 number of mouse wheel ticks (using a constant multiplier). 21 22 Tests: fast/events/wheelevent-basic.html 23 fast/events/wheelevent-constructor.html 24 fast/events/wheelevent-mousewheel-interaction.html 25 26 * dom/Document.h: 27 * dom/Document.idl: 28 * dom/Element.h: 29 * dom/Element.idl: 30 * dom/EventNames.h: 31 * dom/EventTarget.cpp: 32 (WebCore::legacyType): 33 (WebCore::EventTarget::shouldObserveLegacyType): 34 (WebCore::EventTarget::setupLegacyTypeObserverIfNeeded): 35 (WebCore::EventTarget::fireEventListeners): 36 * dom/EventTarget.h: 37 * dom/Node.cpp: 38 (WebCore::Node::didMoveToNewDocument): 39 (WebCore::tryAddEventListener): 40 (WebCore::tryRemoveEventListener): 41 (WebCore::Node::defaultEventHandler): 42 * dom/WheelEvent.cpp: 43 (WebCore::WheelEventInit::WheelEventInit): 44 (WebCore::WheelEvent::WheelEvent): 45 (WebCore::WheelEvent::initWheelEvent): 46 * dom/WheelEvent.h: 47 (WebCore::WheelEvent::deltaX): 48 (WebCore::WheelEvent::deltaY): 49 (WebCore::WheelEvent::deltaZ): 50 (WebCore::WheelEvent::wheelDelta): 51 (WebCore::WheelEvent::wheelDeltaX): 52 (WebCore::WheelEvent::wheelDeltaY): 53 * dom/WheelEvent.idl: 54 * html/HTMLAttributeNames.in: 55 * html/HTMLElement.cpp: 56 (WebCore::HTMLElement::eventNameForAttributeName): 57 * page/DOMWindow.cpp: 58 (WebCore::DOMWindow::addEventListener): 59 (WebCore::DOMWindow::removeEventListener): 60 * page/DOMWindow.h: 61 * page/DOMWindow.idl: 62 * page/EventHandler.cpp: 63 (WebCore::EventHandler::defaultWheelEventHandler): 64 * plugins/blackberry/PluginViewBlackBerry.cpp: 65 (WebCore::PluginView::handleWheelEvent): 66 * svg/SVGElementInstance.cpp: 67 * svg/SVGElementInstance.h: 68 * svg/SVGElementInstance.idl: 69 1 70 2013-08-27 Allan Sandfeld Jensen <allan.jensen@digia.com> 2 71 -
trunk/Source/WebCore/dom/Document.h
r154597 r154673 279 279 DEFINE_ATTRIBUTE_EVENT_LISTENER(select); 280 280 DEFINE_ATTRIBUTE_EVENT_LISTENER(submit); 281 DEFINE_ATTRIBUTE_EVENT_LISTENER(wheel); 281 282 282 283 DEFINE_ATTRIBUTE_EVENT_LISTENER(blur); -
trunk/Source/WebCore/dom/Document.idl
r153772 r154673 275 275 [NotEnumerable] attribute EventListener onselect; 276 276 [NotEnumerable] attribute EventListener onsubmit; 277 [NotEnumerable] attribute EventListener onwheel; 277 278 278 279 // [NotEnumerable] attribute EventListener oncanplay; -
trunk/Source/WebCore/dom/Element.h
r154541 r154673 98 98 DEFINE_ATTRIBUTE_EVENT_LISTENER(select); 99 99 DEFINE_ATTRIBUTE_EVENT_LISTENER(submit); 100 DEFINE_ATTRIBUTE_EVENT_LISTENER(wheel); 100 101 101 102 // These four attribute event handler attributes are overridden by HTMLBodyElement -
trunk/Source/WebCore/dom/Element.idl
r154057 r154673 190 190 [NotEnumerable] attribute EventListener onselect; 191 191 [NotEnumerable] attribute EventListener onsubmit; 192 [NotEnumerable] attribute EventListener onwheel; 192 193 193 194 // [NotEnumerable] attribute EventListener oncanplay; -
trunk/Source/WebCore/dom/EventNames.h
r151777 r154673 123 123 macro(versionchange) \ 124 124 macro(visibilitychange) \ 125 macro(wheel) \ 125 126 macro(write) \ 126 127 macro(writeend) \ -
trunk/Source/WebCore/dom/EventTarget.cpp
r153972 r154673 162 162 } 163 163 164 static AtomicString prefixedType(const Event* event)164 static const AtomicString& legacyType(const Event* event) 165 165 { 166 166 if (event->type() == eventNames().transitionendEvent) 167 167 return eventNames().webkitTransitionEndEvent; 168 168 169 return emptyString(); 169 if (event->type() == eventNames().wheelEvent) 170 return eventNames().mousewheelEvent; 171 172 return emptyAtom; 173 } 174 175 static inline bool shouldObserveLegacyType(const AtomicString& legacyTypeName, bool hasLegacyTypeListeners, bool hasNewTypeListeners, FeatureObserver::Feature& feature) 176 { 177 if (legacyTypeName == eventNames().webkitTransitionEndEvent) { 178 if (hasLegacyTypeListeners) { 179 if (hasNewTypeListeners) 180 feature = FeatureObserver::PrefixedAndUnprefixedTransitionEndEvent; 181 else 182 feature = FeatureObserver::PrefixedTransitionEndEvent; 183 } else { 184 ASSERT(hasNewTypeListeners); 185 feature = FeatureObserver::UnprefixedTransitionEndEvent; 186 } 187 return true; 188 } 189 return false; 190 } 191 192 void EventTarget::setupLegacyTypeObserverIfNeeded(const AtomicString& legacyTypeName, bool hasLegacyTypeListeners, bool hasNewTypeListeners) 193 { 194 ASSERT(!legacyTypeName.isEmpty()); 195 ASSERT(hasLegacyTypeListeners || hasNewTypeListeners); 196 197 ScriptExecutionContext* context = scriptExecutionContext(); 198 if (!context || !context->isDocument()) 199 return; 200 201 Document* document = toDocument(context); 202 if (!document->domWindow()) 203 return; 204 205 FeatureObserver::Feature feature; 206 if (shouldObserveLegacyType(legacyTypeName, hasLegacyTypeListeners, hasNewTypeListeners, feature)) 207 FeatureObserver::observe(document->domWindow(), feature); 170 208 } 171 209 … … 179 217 return true; 180 218 181 EventListenerVector* listenerPrefixedVector = 0; 182 AtomicString prefixedTypeName = prefixedType(event); 183 if (!prefixedTypeName.isEmpty()) 184 listenerPrefixedVector = d->eventListenerMap.find(prefixedTypeName); 185 186 EventListenerVector* listenerUnprefixedVector = d->eventListenerMap.find(event->type()); 187 188 if (listenerUnprefixedVector) 189 fireEventListeners(event, d, *listenerUnprefixedVector); 190 else if (listenerPrefixedVector) { 191 AtomicString unprefixedTypeName = event->type(); 192 event->setType(prefixedTypeName); 193 fireEventListeners(event, d, *listenerPrefixedVector); 194 event->setType(unprefixedTypeName); 195 } 196 197 if (!prefixedTypeName.isEmpty()) { 198 ScriptExecutionContext* context = scriptExecutionContext(); 199 if (context && context->isDocument()) { 200 Document* document = toDocument(context); 201 if (document->domWindow()) { 202 if (listenerPrefixedVector) 203 if (listenerUnprefixedVector) 204 FeatureObserver::observe(document->domWindow(), FeatureObserver::PrefixedAndUnprefixedTransitionEndEvent); 205 else 206 FeatureObserver::observe(document->domWindow(), FeatureObserver::PrefixedTransitionEndEvent); 207 else if (listenerUnprefixedVector) 208 FeatureObserver::observe(document->domWindow(), FeatureObserver::UnprefixedTransitionEndEvent); 209 } 210 } 211 } 219 EventListenerVector* legacyListenersVector = 0; 220 const AtomicString& legacyTypeName = legacyType(event); 221 if (!legacyTypeName.isEmpty()) 222 legacyListenersVector = d->eventListenerMap.find(legacyTypeName); 223 224 EventListenerVector* listenersVector = d->eventListenerMap.find(event->type()); 225 226 if (listenersVector) 227 fireEventListeners(event, d, *listenersVector); 228 else if (legacyListenersVector) { 229 AtomicString typeName = event->type(); 230 event->setType(legacyTypeName); 231 fireEventListeners(event, d, *legacyListenersVector); 232 event->setType(typeName); 233 } 234 235 if (!legacyTypeName.isEmpty() && (legacyListenersVector || listenersVector)) 236 setupLegacyTypeObserverIfNeeded(legacyTypeName, !!legacyListenersVector, !!listenersVector); 212 237 213 238 return !event->defaultPrevented(); -
trunk/Source/WebCore/dom/EventTarget.h
r153972 r154673 148 148 149 149 void fireEventListeners(Event*, EventTargetData*, EventListenerVector&); 150 void setupLegacyTypeObserverIfNeeded(const AtomicString& legacyTypeName, bool hasLegacyTypeListeners, bool hasNewTypeListeners); 150 151 151 152 friend class EventListenerIterator; -
trunk/Source/WebCore/dom/Node.cpp
r154541 r154673 1879 1879 cache->remove(this); 1880 1880 1881 const EventListenerVector& wheelListeners = getEventListeners(eventNames().mousewheelEvent); 1881 const EventListenerVector& mousewheelListeners = getEventListeners(eventNames().mousewheelEvent); 1882 for (size_t i = 0; i < mousewheelListeners.size(); ++i) { 1883 oldDocument->didRemoveWheelEventHandler(); 1884 document()->didAddWheelEventHandler(); 1885 } 1886 1887 const EventListenerVector& wheelListeners = getEventListeners(eventNames().wheelEvent); 1882 1888 for (size_t i = 0; i < wheelListeners.size(); ++i) { 1883 1889 oldDocument->didRemoveWheelEventHandler(); … … 1914 1920 if (Document* document = targetNode->document()) { 1915 1921 document->addListenerTypeIfNeeded(eventType); 1916 if (eventType == eventNames(). mousewheelEvent)1922 if (eventType == eventNames().wheelEvent || eventType == eventNames().mousewheelEvent) 1917 1923 document->didAddWheelEventHandler(); 1918 1924 else if (eventNames().isTouchEventType(eventType)) … … 1936 1942 // listeners for each type, not just a bool - see https://bugs.webkit.org/show_bug.cgi?id=33861 1937 1943 if (Document* document = targetNode->document()) { 1938 if (eventType == eventNames(). mousewheelEvent)1944 if (eventType == eventNames().wheelEvent || eventType == eventNames().mousewheelEvent) 1939 1945 document->didRemoveWheelEventHandler(); 1940 1946 else if (eventNames().isTouchEventType(eventType)) … … 2244 2250 } 2245 2251 #endif 2246 } else if ( eventType == eventNames().mousewheelEvent&& event->hasInterface(eventNames().interfaceForWheelEvent)) {2252 } else if ((eventType == eventNames().wheelEvent || eventType == eventNames().mousewheelEvent) && event->hasInterface(eventNames().interfaceForWheelEvent)) { 2247 2253 WheelEvent* wheelEvent = static_cast<WheelEvent*>(event); 2248 2254 -
trunk/Source/WebCore/dom/WheelEvent.cpp
r151757 r154673 4 4 * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) 5 5 * Copyright (C) 2003, 2005, 2006, 2008, 2010, 2013 Apple Inc. All rights reserved. 6 * Copyright (C) 2013 Samsung Electronics. All rights reserved. 6 7 * 7 8 * This library is free software; you can redistribute it and/or … … 34 35 35 36 WheelEventInit::WheelEventInit() 36 : wheelDeltaX(0) 37 : deltaX(0) 38 , deltaY(0) 39 , deltaZ(0) 40 , deltaMode(WheelEvent::DOM_DELTA_PIXEL) 41 , wheelDeltaX(0) 37 42 , wheelDeltaY(0) 38 , deltaMode(WheelEvent::DOM_DELTA_PIXEL)39 43 { 40 44 } 41 45 42 46 WheelEvent::WheelEvent() 43 : m_deltaMode(DOM_DELTA_PIXEL) 47 : m_deltaX(0) 48 , m_deltaY(0) 49 , m_deltaZ(0) 50 , m_deltaMode(DOM_DELTA_PIXEL) 44 51 , m_directionInvertedFromDevice(false) 45 52 { … … 48 55 WheelEvent::WheelEvent(const AtomicString& type, const WheelEventInit& initializer) 49 56 : MouseEvent(type, initializer) 50 , m_wheelDelta(IntPoint(initializer.wheelDeltaX, initializer.wheelDeltaY)) 57 , m_wheelDelta(initializer.wheelDeltaX ? initializer.wheelDeltaX : -initializer.deltaX, initializer.wheelDeltaY ? initializer.wheelDeltaY : -initializer.deltaY) 58 , m_deltaX(initializer.deltaX ? initializer.deltaX : -initializer.wheelDeltaX) 59 , m_deltaY(initializer.deltaY ? initializer.deltaY : -initializer.wheelDeltaY) 60 , m_deltaZ(initializer.deltaZ) 51 61 , m_deltaMode(initializer.deltaMode) 52 62 { … … 56 66 PassRefPtr<AbstractView> view, const IntPoint& screenLocation, const IntPoint& pageLocation, 57 67 bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool directionInvertedFromDevice, double timestamp) 58 : MouseEvent(eventNames(). mousewheelEvent,68 : MouseEvent(eventNames().wheelEvent, 59 69 true, true, timestamp, view, 0, screenLocation.x(), screenLocation.y(), 60 70 pageLocation.x(), pageLocation.y(), … … 63 73 #endif 64 74 ctrlKey, altKey, shiftKey, metaKey, 0, 0, 0, false) 65 , m_wheelDelta(IntPoint(static_cast<int>(wheelTicks.x() * TickMultiplier), static_cast<int>(wheelTicks.y() * TickMultiplier))) 66 , m_rawDelta(roundedIntPoint(rawDelta)) 75 , m_wheelDelta(wheelTicks.x() * TickMultiplier, wheelTicks.y() * TickMultiplier) 76 , m_deltaX(-rawDelta.x()) 77 , m_deltaY(-rawDelta.y()) 78 , m_deltaZ(0) 67 79 , m_deltaMode(deltaMode) 68 80 , m_directionInvertedFromDevice(directionInvertedFromDevice) … … 77 89 return; 78 90 79 initUIEvent(eventNames(). mousewheelEvent, true, true, view, 0);91 initUIEvent(eventNames().wheelEvent, true, true, view, 0); 80 92 81 93 m_screenLocation = IntPoint(screenX, screenY); … … 84 96 m_shiftKey = shiftKey; 85 97 m_metaKey = metaKey; 86 87 // Normalize to the Windows 120 multiple98 99 // Normalize to 120 multiple for compatibility with IE. 88 100 m_wheelDelta = IntPoint(rawDeltaX * TickMultiplier, rawDeltaY * TickMultiplier); 89 90 m_rawDelta = IntPoint(rawDeltaX, rawDeltaY); 101 m_deltaX = -rawDeltaX; 102 m_deltaY = -rawDeltaY; 103 91 104 m_deltaMode = DOM_DELTA_PIXEL; 92 105 m_directionInvertedFromDevice = false; -
trunk/Source/WebCore/dom/WheelEvent.h
r151757 r154673 4 4 * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) 5 5 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2010, 2013 Apple Inc. All rights reserved. 6 * Copyright (C) 2013 Samsung Electronics. All rights reserved. 6 7 * 7 8 * This library is free software; you can redistribute it and/or … … 36 37 WheelEventInit(); 37 38 38 int wheelDeltaX; 39 int wheelDeltaY; 39 double deltaX; 40 double deltaY; 41 double deltaZ; 40 42 unsigned deltaMode; 43 int wheelDeltaX; // Deprecated. 44 int wheelDeltaY; // Deprecated. 41 45 }; 42 46 … … 78 82 bool ctrlKey, bool altKey, bool shiftKey, bool metaKey); 79 83 80 int wheelDelta() const { return m_wheelDelta.y() ? m_wheelDelta.y() : m_wheelDelta.x(); } 81 int wheelDeltaX() const { return m_wheelDelta.x(); } 82 int wheelDeltaY() const { return m_wheelDelta.y(); } 83 int rawDeltaX() const { return m_rawDelta.x(); } 84 int rawDeltaY() const { return m_rawDelta.y(); } 84 double deltaX() const { return m_deltaX; } // Positive when scrolling right. 85 double deltaY() const { return m_deltaY; } // Positive when scrolling down. 86 double deltaZ() const { return m_deltaZ; } 87 int wheelDelta() const { return wheelDeltaY() ? wheelDeltaY() : wheelDeltaX(); } // Deprecated. 88 int wheelDeltaX() const { return m_wheelDelta.x(); } // Deprecated, negative when scrolling right. 89 int wheelDeltaY() const { return m_wheelDelta.y(); } // Deprecated, negative when scrolling down. 85 90 unsigned deltaMode() const { return m_deltaMode; } 86 91 … … 100 105 101 106 IntPoint m_wheelDelta; 102 IntPoint m_rawDelta; 107 double m_deltaX; 108 double m_deltaY; 109 double m_deltaZ; 103 110 unsigned m_deltaMode; 104 111 bool m_directionInvertedFromDevice; -
trunk/Source/WebCore/dom/WheelEvent.idl
r149368 r154673 2 2 * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com> 4 * Copyright (C) 2013 Samsung Electronics. All rights reserved. 4 5 * 5 6 * This library is free software; you can redistribute it and/or … … 19 20 */ 20 21 22 // Introduced in DOM Level 3: 21 23 [ 22 24 ConstructorConditional=DOM4_EVENTS_CONSTRUCTOR, 23 25 ConstructorTemplate=Event 24 26 ] interface WheelEvent : MouseEvent { 27 // DeltaModeCode 25 28 const unsigned long DOM_DELTA_PIXEL = 0x00; 26 29 const unsigned long DOM_DELTA_LINE = 0x01; 27 30 const unsigned long DOM_DELTA_PAGE = 0x02; 28 31 32 [InitializedByEventConstructor] readonly attribute double deltaX; 33 [InitializedByEventConstructor] readonly attribute double deltaY; 34 [InitializedByEventConstructor] readonly attribute double deltaZ; 35 [InitializedByEventConstructor] readonly attribute unsigned long deltaMode; 36 37 // Legacy MouseWheelEvent API replaced by standard WheelEvent API. 29 38 [InitializedByEventConstructor] readonly attribute long wheelDeltaX; 30 39 [InitializedByEventConstructor] readonly attribute long wheelDeltaY; 31 [InitializedByEventConstructor] readonly attribute unsigned long deltaMode;32 33 40 readonly attribute long wheelDelta; 34 41 -
trunk/Source/WebCore/html/HTMLAttributeNames.in
r154327 r154673 238 238 onselectionchange 239 239 onwebkitspeechchange 240 onwheel 240 241 onstalled 241 242 onstorage -
trunk/Source/WebCore/html/HTMLElement.cpp
r154358 r154673 229 229 attributeNameToEventNameMap.set(onmouseupAttr.localName(), eventNames().mouseupEvent); 230 230 attributeNameToEventNameMap.set(onmousewheelAttr.localName(), eventNames().mousewheelEvent); 231 attributeNameToEventNameMap.set(onwheelAttr.localName(), eventNames().wheelEvent); 231 232 attributeNameToEventNameMap.set(onfocusAttr.localName(), eventNames().focusEvent); 232 233 attributeNameToEventNameMap.set(onfocusinAttr.localName(), eventNames().focusinEvent); -
trunk/Source/WebCore/page/DOMWindow.cpp
r154658 r154673 1625 1625 if (Document* document = this->document()) { 1626 1626 document->addListenerTypeIfNeeded(eventType); 1627 if (eventType == eventNames(). mousewheelEvent)1627 if (eventType == eventNames().wheelEvent || eventType == eventNames().mousewheelEvent) 1628 1628 document->didAddWheelEventHandler(); 1629 1629 else if (eventNames().isTouchEventType(eventType)) … … 1663 1663 1664 1664 if (Document* document = this->document()) { 1665 if (eventType == eventNames(). mousewheelEvent)1665 if (eventType == eventNames().wheelEvent || eventType == eventNames().mousewheelEvent) 1666 1666 document->didRemoveWheelEventHandler(); 1667 1667 else if (eventNames().isTouchEventType(eventType)) -
trunk/Source/WebCore/page/DOMWindow.h
r153926 r154673 351 351 DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitbeginfullscreen); 352 352 DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitendfullscreen); 353 DEFINE_ATTRIBUTE_EVENT_LISTENER(wheel); 353 354 354 355 DEFINE_MAPPED_ATTRIBUTE_EVENT_LISTENER(webkitanimationstart, webkitAnimationStart); -
trunk/Source/WebCore/page/DOMWindow.idl
r152859 r154673 260 260 attribute EventListener onvolumechange; 261 261 attribute EventListener onwaiting; 262 attribute EventListener onwheel; 262 263 263 264 // Not implemented yet. -
trunk/Source/WebCore/page/EventHandler.cpp
r154663 r154673 2585 2585 // Break up into two scrolls if we need to. Diagonal movement on 2586 2586 // a MacBook pro is an example of a 2-dimensional mouse wheel event (where both deltaX and deltaY can be set). 2587 if (dominantDirection != DominantScrollDirectionVertical && scrollNode(wheelEvent-> rawDeltaX(), granularity, ScrollLeft, ScrollRight, startNode, &stopNode))2587 if (dominantDirection != DominantScrollDirectionVertical && scrollNode(wheelEvent->deltaX(), granularity, ScrollRight, ScrollLeft, startNode, &stopNode)) 2588 2588 wheelEvent->setDefaultHandled(); 2589 2589 2590 if (dominantDirection != DominantScrollDirectionHorizontal && scrollNode(wheelEvent-> rawDeltaY(), granularity, ScrollUp, ScrollDown, startNode, &stopNode))2590 if (dominantDirection != DominantScrollDirectionHorizontal && scrollNode(wheelEvent->deltaY(), granularity, ScrollDown, ScrollUp, startNode, &stopNode)) 2591 2591 wheelEvent->setDefaultHandled(); 2592 2592 -
trunk/Source/WebCore/plugins/blackberry/PluginViewBlackBerry.cpp
r154272 r154673 329 329 wheelEvent.flags = 0; 330 330 331 wheelEvent.xDelta = event->rawDeltaX();332 wheelEvent.yDelta = event->rawDeltaY();331 wheelEvent.xDelta = -event->deltaX(); 332 wheelEvent.yDelta = -event->deltaY(); 333 333 334 334 npEvent.type = NP_WheelEvent; -
trunk/Source/WebCore/svg/SVGElementInstance.cpp
r154462 r154673 64 64 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), mouseup); 65 65 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), mousewheel); 66 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), wheel); 66 67 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), beforecut); 67 68 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), cut); -
trunk/Source/WebCore/svg/SVGElementInstance.h
r154462 r154673 122 122 DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), mouseup); 123 123 DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), mousewheel); 124 DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), wheel); 124 125 DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), beforecut); 125 126 DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), cut); -
trunk/Source/WebCore/svg/SVGElementInstance.idl
r151714 r154673 70 70 [NotEnumerable] attribute EventListener onmouseup; 71 71 [NotEnumerable] attribute EventListener onmousewheel; 72 [NotEnumerable] attribute EventListener onwheel; 72 73 [NotEnumerable] attribute EventListener onbeforecut; 73 74 [NotEnumerable] attribute EventListener oncut;
Note: See TracChangeset
for help on using the changeset viewer.