NS_IMETHODIMP ChromeTooltipListener::HandleEvent(nsIDOMEvent* aEvent) { nsAutoString eventType; aEvent->GetType(eventType); if (eventType.EqualsLiteral("mousedown")) { return HideTooltip(); } else if (eventType.EqualsLiteral("keydown")) { WidgetKeyboardEvent* keyEvent = aEvent->WidgetEventPtr()->AsKeyboardEvent(); if (!keyEvent->IsModifierKeyEvent()) { return HideTooltip(); } return NS_OK; } else if (eventType.EqualsLiteral("mouseout")) { // Reset flag so that tooltip will display on the next MouseMove mTooltipShownOnce = false; return HideTooltip(); } else if (eventType.EqualsLiteral("mousemove")) { return MouseMove(aEvent); } NS_ERROR("Unexpected event type"); return NS_OK; }