Exemplo n.º 1
0
 /**
  * If the current item in the event target chain has an event listener
  * manager, this method calls nsEventListenerManager::HandleEvent().
  */
 void HandleEvent(nsEventChainPostVisitor& aVisitor,
                  ELMCreationDetector& aCd)
 {
   if (WantsWillHandleEvent()) {
     mTarget->WillHandleEvent(aVisitor);
   }
   if (aVisitor.mEvent->mFlags.mPropagationStopped) {
     return;
   }
   if (!mManager) {
     if (!MayHaveListenerManager() && !aCd.MayHaveNewListenerManager()) {
       return;
     }
     mManager = mTarget->GetExistingListenerManager();
   }
   if (mManager) {
     NS_ASSERTION(aVisitor.mEvent->currentTarget == nullptr,
                  "CurrentTarget should be null!");
     mManager->HandleEvent(aVisitor.mPresContext, aVisitor.mEvent,
                           &aVisitor.mDOMEvent,
                           CurrentTarget(),
                           &aVisitor.mEventStatus);
     NS_ASSERTION(aVisitor.mEvent->currentTarget == nullptr,
                  "CurrentTarget should be null!");
   }
 }
Exemplo n.º 2
0
 /**
  * If the current item in the event target chain has an event listener
  * manager, this method calls nsEventListenerManager::HandleEvent().
  */
 nsresult HandleEvent(nsEventChainPostVisitor& aVisitor,
                      ELMCreationDetector& aCd,
                      nsCxPusher* aPusher)
 {
   if (WantsWillHandleEvent()) {
     mTarget->WillHandleEvent(aVisitor);
   }
   if (aVisitor.mEvent->mFlags.mPropagationStopped) {
     return NS_OK;
   }
   if (!mManager) {
     if (!MayHaveListenerManager() && !aCd.MayHaveNewListenerManager()) {
       return NS_OK;
     }
     mManager =
       static_cast<nsEventListenerManager*>(mTarget->GetListenerManager(false));
   }
   if (mManager) {
     NS_ASSERTION(aVisitor.mEvent->currentTarget == nullptr,
                  "CurrentTarget should be null!");
     mManager->HandleEvent(aVisitor.mPresContext, aVisitor.mEvent,
                           &aVisitor.mDOMEvent,
                           CurrentTarget(),
                           &aVisitor.mEventStatus,
                           aPusher);
     NS_ASSERTION(aVisitor.mEvent->currentTarget == nullptr,
                  "CurrentTarget should be null!");
   }
   return NS_OK;
 }