static void dispatchEditableContentChangedEvents(PassRefPtr<Element> startRoot, PassRefPtr<Element> endRoot) { if (startRoot) startRoot->dispatchEvent(Event::create(EventTypeNames::webkitEditableContentChanged), IGNORE_EXCEPTION); if (endRoot && endRoot != startRoot) endRoot->dispatchEvent(Event::create(EventTypeNames::webkitEditableContentChanged), IGNORE_EXCEPTION); }
bool EventDispatcher::dispatchEvent(Node* node, PassRefPtr<EventDispatchMediator> mediator) { ASSERT(!eventDispatchForbidden()); EventDispatcher dispatcher(node); return mediator->dispatchEvent(&dispatcher); }
bool EventDispatcher::dispatchEvent(Node* node, PassRefPtr<EventDispatchMediator> mediator) { ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden()); if (!mediator->event()) return true; EventDispatcher dispatcher(node, mediator->event()); return mediator->dispatchEvent(&dispatcher); }
void FrameView::scheduleEvent(PassRefPtr<Event> event, PassRefPtr<EventTargetNode> eventTarget, bool tempEvent) { if (!d->m_enqueueEvents) { ExceptionCode ec = 0; eventTarget->dispatchEvent(event, ec, tempEvent); return; } ScheduledEvent* scheduledEvent = new ScheduledEvent; scheduledEvent->m_event = event; scheduledEvent->m_eventTarget = eventTarget; scheduledEvent->m_tempEvent = tempEvent; d->m_scheduledEvents.append(scheduledEvent); }
void EventQueue::enqueueOrDispatchScrollEvent(PassRefPtr<Node> target, ScrollEventTargetType targetType) { if (!target->document()->hasListenerType(Document::SCROLL_LISTENER)) return; // Per the W3C CSSOM View Module, scroll events fired at the document should bubble, others should not. bool canBubble = targetType == ScrollEventDocumentTarget; RefPtr<Event> scrollEvent = Event::create(eventNames().scrollEvent, canBubble, false /* non cancelleable */); if (shouldDispatchScrollEventSynchronously(target->document())) { target->dispatchEvent(scrollEvent.release()); return; } if (!m_nodesWithQueuedScrollEvents.add(target.get()).second) return; scrollEvent->setTarget(target); enqueueEvent(scrollEvent.release()); }