308
308
return NS_ERROR_NULL_POINTER;
310
310
nsCOMPtr<nsIDOMEventTarget> evtTarget(do_QueryInterface(aNode));
311
evtTarget->AddEventListener(NS_LITERAL_STRING("mouseout"), (nsIDOMMouseListener*)this, PR_FALSE);
312
evtTarget->AddEventListener(NS_LITERAL_STRING("mousemove"), (nsIDOMMouseListener*)this, PR_FALSE);
311
evtTarget->AddEventListener(NS_LITERAL_STRING("mouseout"), static_cast<nsIDOMMouseListener*>(this), PR_FALSE);
312
evtTarget->AddEventListener(NS_LITERAL_STRING("mousemove"), static_cast<nsIDOMMouseListener*>(this), PR_FALSE);
313
evtTarget->AddEventListener(NS_LITERAL_STRING("dragstart"), static_cast<nsIDOMMouseListener*>(this), PR_FALSE);
321
322
return NS_ERROR_NULL_POINTER;
323
324
nsCOMPtr<nsIDOMEventTarget> evtTarget(do_QueryInterface(aNode));
324
evtTarget->RemoveEventListener(NS_LITERAL_STRING("mouseout"), (nsIDOMMouseListener*)this, PR_FALSE);
325
evtTarget->RemoveEventListener(NS_LITERAL_STRING("mousemove"), (nsIDOMMouseListener*)this, PR_FALSE);
325
evtTarget->RemoveEventListener(NS_LITERAL_STRING("mouseout"), static_cast<nsIDOMMouseListener*>(this), PR_FALSE);
326
evtTarget->RemoveEventListener(NS_LITERAL_STRING("mousemove"), static_cast<nsIDOMMouseListener*>(this), PR_FALSE);
327
evtTarget->RemoveEventListener(NS_LITERAL_STRING("dragstart"), static_cast<nsIDOMMouseListener*>(this), PR_FALSE);
430
432
// be sure DestroyPopup is called even if someone else closes the tooltip
431
433
nsCOMPtr<nsIDOMEventTarget> evtTarget(do_QueryInterface(currentTooltip));
432
434
evtTarget->AddEventListener(NS_LITERAL_STRING("popuphiding"),
433
(nsIDOMMouseListener*)this, PR_FALSE);
435
static_cast<nsIDOMMouseListener*>(this), PR_FALSE);
435
437
// listen for mousedown, mouseup, keydown, and DOMMouseScroll events at document level
436
438
nsIDocument* doc = sourceNode->GetDocument();
438
440
evtTarget = do_QueryInterface(doc);
439
441
evtTarget->AddEventListener(NS_LITERAL_STRING("DOMMouseScroll"),
440
(nsIDOMMouseListener*)this, PR_TRUE);
442
static_cast<nsIDOMMouseListener*>(this), PR_TRUE);
441
443
evtTarget->AddEventListener(NS_LITERAL_STRING("mousedown"),
442
(nsIDOMMouseListener*)this, PR_TRUE);
444
static_cast<nsIDOMMouseListener*>(this), PR_TRUE);
443
445
evtTarget->AddEventListener(NS_LITERAL_STRING("mouseup"),
444
(nsIDOMMouseListener*)this, PR_TRUE);
446
static_cast<nsIDOMMouseListener*>(this), PR_TRUE);
445
447
evtTarget->AddEventListener(NS_LITERAL_STRING("keydown"),
446
(nsIDOMMouseListener*)this, PR_TRUE);
448
static_cast<nsIDOMMouseListener*>(this), PR_TRUE);
448
450
mSourceNode = nsnull;
687
689
// remove the mousedown and keydown listener from document
688
690
nsCOMPtr<nsIDOMEventTarget> evtTarget(do_QueryInterface(doc));
689
evtTarget->RemoveEventListener(NS_LITERAL_STRING("DOMMouseScroll"), (nsIDOMMouseListener*)this, PR_TRUE);
690
evtTarget->RemoveEventListener(NS_LITERAL_STRING("mousedown"), (nsIDOMMouseListener*)this, PR_TRUE);
691
evtTarget->RemoveEventListener(NS_LITERAL_STRING("mouseup"), (nsIDOMMouseListener*)this, PR_TRUE);
692
evtTarget->RemoveEventListener(NS_LITERAL_STRING("keydown"), (nsIDOMMouseListener*)this, PR_TRUE);
691
evtTarget->RemoveEventListener(NS_LITERAL_STRING("DOMMouseScroll"), static_cast<nsIDOMMouseListener*>(this), PR_TRUE);
692
evtTarget->RemoveEventListener(NS_LITERAL_STRING("mousedown"), static_cast<nsIDOMMouseListener*>(this), PR_TRUE);
693
evtTarget->RemoveEventListener(NS_LITERAL_STRING("mouseup"), static_cast<nsIDOMMouseListener*>(this), PR_TRUE);
694
evtTarget->RemoveEventListener(NS_LITERAL_STRING("keydown"), static_cast<nsIDOMMouseListener*>(this), PR_TRUE);
695
697
// remove the popuphidden listener from tooltip
699
701
// being called recursively (bug 120863)
700
702
mCurrentTooltip = nsnull;
702
evtTarget->RemoveEventListener(NS_LITERAL_STRING("popuphiding"), (nsIDOMMouseListener*)this, PR_FALSE);
704
evtTarget->RemoveEventListener(NS_LITERAL_STRING("popuphiding"), static_cast<nsIDOMMouseListener*>(this), PR_FALSE);
705
707
// kill any ongoing timers