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 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
374 // To match Mozilla, the AT_TARGET phase fires both capturing and bubbli
ng | 374 // To match Mozilla, the AT_TARGET phase fires both capturing and bubbli
ng |
375 // event listeners, even though that violates some versions of the DOM s
pec. | 375 // event listeners, even though that violates some versions of the DOM s
pec. |
376 registeredListener.listener->handleEvent(context, event); | 376 registeredListener.listener->handleEvent(context, event); |
377 InspectorInstrumentation::didHandleEvent(cookie); | 377 InspectorInstrumentation::didHandleEvent(cookie); |
378 } | 378 } |
379 d->firingEventIterators->removeLast(); | 379 d->firingEventIterators->removeLast(); |
380 } | 380 } |
381 | 381 |
382 const EventListenerVector& EventTarget::getEventListeners(const AtomicString& ev
entType) | 382 const EventListenerVector& EventTarget::getEventListeners(const AtomicString& ev
entType) |
383 { | 383 { |
384 AtomicallyInitializedStatic(EventListenerVector*, emptyVector = new EventLis
tenerVector); | 384 AtomicallyInitializedStaticReference(EventListenerVector, emptyVector, new E
ventListenerVector); |
385 | 385 |
386 EventTargetData* d = eventTargetData(); | 386 EventTargetData* d = eventTargetData(); |
387 if (!d) | 387 if (!d) |
388 return *emptyVector; | 388 return emptyVector; |
389 | 389 |
390 EventListenerVector* listenerVector = d->eventListenerMap.find(eventType); | 390 EventListenerVector* listenerVector = d->eventListenerMap.find(eventType); |
391 if (!listenerVector) | 391 if (!listenerVector) |
392 return *emptyVector; | 392 return emptyVector; |
393 | 393 |
394 return *listenerVector; | 394 return *listenerVector; |
395 } | 395 } |
396 | 396 |
397 Vector<AtomicString> EventTarget::eventTypes() | 397 Vector<AtomicString> EventTarget::eventTypes() |
398 { | 398 { |
399 EventTargetData* d = eventTargetData(); | 399 EventTargetData* d = eventTargetData(); |
400 return d ? d->eventListenerMap.eventTypes() : Vector<AtomicString>(); | 400 return d ? d->eventListenerMap.eventTypes() : Vector<AtomicString>(); |
401 } | 401 } |
402 | 402 |
403 void EventTarget::removeAllEventListeners() | 403 void EventTarget::removeAllEventListeners() |
404 { | 404 { |
405 EventTargetData* d = eventTargetData(); | 405 EventTargetData* d = eventTargetData(); |
406 if (!d) | 406 if (!d) |
407 return; | 407 return; |
408 d->eventListenerMap.clear(); | 408 d->eventListenerMap.clear(); |
409 | 409 |
410 // Notify firing events planning to invoke the listener at 'index' that | 410 // Notify firing events planning to invoke the listener at 'index' that |
411 // they have one less listener to invoke. | 411 // they have one less listener to invoke. |
412 if (d->firingEventIterators) { | 412 if (d->firingEventIterators) { |
413 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) { | 413 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) { |
414 d->firingEventIterators->at(i).iterator = 0; | 414 d->firingEventIterators->at(i).iterator = 0; |
415 d->firingEventIterators->at(i).end = 0; | 415 d->firingEventIterators->at(i).end = 0; |
416 } | 416 } |
417 } | 417 } |
418 } | 418 } |
419 | 419 |
420 } // namespace blink | 420 } // namespace blink |
OLD | NEW |