| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 5 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. |
| 6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> | 7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> |
| 8 * | 8 * |
| 9 * Redistribution and use in source and binary forms, with or without | 9 * Redistribution and use in source and binary forms, with or without |
| 10 * modification, are permitted provided that the following conditions | 10 * modification, are permitted provided that the following conditions |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 event->setEventPhase(Event::AT_TARGET); | 149 event->setEventPhase(Event::AT_TARGET); |
| 150 bool defaultPrevented = fireEventListeners(event.get()); | 150 bool defaultPrevented = fireEventListeners(event.get()); |
| 151 event->setEventPhase(0); | 151 event->setEventPhase(0); |
| 152 return defaultPrevented; | 152 return defaultPrevented; |
| 153 } | 153 } |
| 154 | 154 |
| 155 void EventTarget::uncaughtExceptionInEventHandler() | 155 void EventTarget::uncaughtExceptionInEventHandler() |
| 156 { | 156 { |
| 157 } | 157 } |
| 158 | 158 |
| 159 static const AtomicString& legacyType(const Event* event) | |
| 160 { | |
| 161 if (event->type() == EventTypeNames::wheel) | |
| 162 return EventTypeNames::mousewheel; | |
| 163 | |
| 164 return emptyAtom; | |
| 165 } | |
| 166 | |
| 167 bool EventTarget::fireEventListeners(Event* event) | 159 bool EventTarget::fireEventListeners(Event* event) |
| 168 { | 160 { |
| 169 ASSERT(!EventDispatchForbiddenScope::isEventDispatchForbidden()); | 161 ASSERT(!EventDispatchForbiddenScope::isEventDispatchForbidden()); |
| 170 ASSERT(event && !event->type().isEmpty()); | 162 ASSERT(event && !event->type().isEmpty()); |
| 171 | 163 |
| 172 EventTargetData* d = eventTargetData(); | 164 EventTargetData* data = eventTargetData(); |
| 173 if (!d) | 165 if (!data) |
| 174 return true; | 166 return true; |
| 175 | 167 |
| 176 EventListenerVector* legacyListenersVector = 0; | 168 if (EventListenerVector* listeners = data->eventListenerMap.find(event->type
())) |
| 177 AtomicString legacyTypeName = legacyType(event); | 169 fireEventListeners(event, data, *listeners); |
| 178 if (!legacyTypeName.isEmpty()) | |
| 179 legacyListenersVector = d->eventListenerMap.find(legacyTypeName); | |
| 180 | |
| 181 EventListenerVector* listenersVector = d->eventListenerMap.find(event->type(
)); | |
| 182 | |
| 183 if (listenersVector) { | |
| 184 fireEventListeners(event, d, *listenersVector); | |
| 185 } else if (legacyListenersVector) { | |
| 186 AtomicString unprefixedTypeName = event->type(); | |
| 187 event->setType(legacyTypeName); | |
| 188 fireEventListeners(event, d, *legacyListenersVector); | |
| 189 event->setType(unprefixedTypeName); | |
| 190 } | |
| 191 | 170 |
| 192 Editor::countEvent(executionContext(), event); | 171 Editor::countEvent(executionContext(), event); |
| 193 return !event->defaultPrevented(); | 172 return !event->defaultPrevented(); |
| 194 } | 173 } |
| 195 | 174 |
| 196 void EventTarget::fireEventListeners(Event* event, EventTargetData* d, EventList
enerVector& entry) | 175 void EventTarget::fireEventListeners(Event* event, EventTargetData* d, EventList
enerVector& entry) |
| 197 { | 176 { |
| 198 RefPtr<EventTarget> protect(this); | 177 RefPtr<EventTarget> protect(this); |
| 199 | 178 |
| 200 // Fire all listeners registered for this event. Don't fire listeners remove
d | 179 // Fire all listeners registered for this event. Don't fire listeners remove
d |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 // they have one less listener to invoke. | 242 // they have one less listener to invoke. |
| 264 if (d->firingEventIterators) { | 243 if (d->firingEventIterators) { |
| 265 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) { | 244 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) { |
| 266 d->firingEventIterators->at(i).iterator = 0; | 245 d->firingEventIterators->at(i).iterator = 0; |
| 267 d->firingEventIterators->at(i).end = 0; | 246 d->firingEventIterators->at(i).end = 0; |
| 268 } | 247 } |
| 269 } | 248 } |
| 270 } | 249 } |
| 271 | 250 |
| 272 } // namespace blink | 251 } // namespace blink |
| OLD | NEW |