OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2001 Peter Kelly (pmk@post.com) | 2 * Copyright (C) 2001 Peter Kelly (pmk@post.com) |
3 * Copyright (C) 2001 Tobias Anton (anton@stud.fbi.fh-darmstadt.de) | 3 * Copyright (C) 2001 Tobias Anton (anton@stud.fbi.fh-darmstadt.de) |
4 * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) | 4 * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) |
5 * Copyright (C) 2003, 2005, 2006, 2008 Apple Inc. All rights reserved. | 5 * Copyright (C) 2003, 2005, 2006, 2008 Apple Inc. All rights reserved. |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 return HeapVector<Member<EventTarget>>(1, window); | 318 return HeapVector<Member<EventTarget>>(1, window); |
319 | 319 |
320 return HeapVector<Member<EventTarget>>(); | 320 return HeapVector<Member<EventTarget>>(); |
321 } | 321 } |
322 | 322 |
323 EventDispatchMediator* Event::createMediator() | 323 EventDispatchMediator* Event::createMediator() |
324 { | 324 { |
325 return EventDispatchMediator::create(this); | 325 return EventDispatchMediator::create(this); |
326 } | 326 } |
327 | 327 |
328 EventTarget* Event::currentTarget() const | |
329 { | |
330 if (!m_currentTarget) | |
331 return nullptr; | |
332 Node* node = m_currentTarget->toNode(); | |
333 if (node && node->isSVGElement()) { | |
334 if (SVGElement* svgElement = toSVGElement(node)->correspondingElement()) | |
335 return svgElement; | |
336 } | |
337 return m_currentTarget.get(); | |
338 } | |
339 | |
340 double Event::timeStamp(ScriptState* scriptState) const | 328 double Event::timeStamp(ScriptState* scriptState) const |
341 { | 329 { |
342 double timeStamp = 0; | 330 double timeStamp = 0; |
343 if (scriptState && scriptState->domWindow()) { | 331 if (scriptState && scriptState->domWindow()) { |
344 Performance* performance = DOMWindowPerformance::performance(*scriptStat
e->domWindow()); | 332 Performance* performance = DOMWindowPerformance::performance(*scriptStat
e->domWindow()); |
345 timeStamp = performance->monotonicTimeToDOMHighResTimeStamp(m_platformTi
meStamp); | 333 timeStamp = performance->monotonicTimeToDOMHighResTimeStamp(m_platformTi
meStamp); |
346 } | 334 } |
347 | 335 |
348 return timeStamp; | 336 return timeStamp; |
349 } | 337 } |
350 | 338 |
351 void Event::setCancelBubble(ExecutionContext* context, bool cancel) | 339 void Event::setCancelBubble(ExecutionContext* context, bool cancel) |
352 { | 340 { |
353 if (!m_cancelBubble && cancel) | 341 if (!m_cancelBubble && cancel) |
354 UseCounter::count(context, UseCounter::EventCancelBubbleWasChangedToTrue
); | 342 UseCounter::count(context, UseCounter::EventCancelBubbleWasChangedToTrue
); |
355 else if (m_cancelBubble && !cancel) | 343 else if (m_cancelBubble && !cancel) |
356 UseCounter::count(context, UseCounter::EventCancelBubbleWasChangedToFals
e); | 344 UseCounter::count(context, UseCounter::EventCancelBubbleWasChangedToFals
e); |
357 m_cancelBubble = cancel; | 345 m_cancelBubble = cancel; |
358 } | 346 } |
359 | 347 |
360 DEFINE_TRACE(Event) | 348 DEFINE_TRACE(Event) |
361 { | 349 { |
362 visitor->trace(m_currentTarget); | 350 visitor->trace(m_currentTarget); |
363 visitor->trace(m_target); | 351 visitor->trace(m_target); |
364 visitor->trace(m_underlyingEvent); | 352 visitor->trace(m_underlyingEvent); |
365 visitor->trace(m_eventPath); | 353 visitor->trace(m_eventPath); |
366 } | 354 } |
367 | 355 |
368 } // namespace blink | 356 } // namespace blink |
OLD | NEW |