void PluginView::handleEvent(Event* event) { const WebEvent* currentEvent = WebPage::currentEvent(); if (!currentEvent) return; bool didHandleEvent = false; if ((event->type() == eventNames().mousemoveEvent && currentEvent->type() == WebEvent::MouseMove) || (event->type() == eventNames().mousedownEvent && currentEvent->type() == WebEvent::MouseDown) || (event->type() == eventNames().mouseupEvent && currentEvent->type() == WebEvent::MouseUp)) { // We have a mouse event. if (currentEvent->type() == WebEvent::MouseDown) focusPluginElement(); didHandleEvent = m_plugin->handleMouseEvent(static_cast<const WebMouseEvent&>(*currentEvent)); } else if (event->type() == eventNames().mousewheelEvent && currentEvent->type() == WebEvent::Wheel) { // We have a wheel event. didHandleEvent = m_plugin->handleWheelEvent(static_cast<const WebWheelEvent&>(*currentEvent)); } else if (event->type() == eventNames().mouseoverEvent && currentEvent->type() == WebEvent::MouseMove) { // We have a mouse enter event. didHandleEvent = m_plugin->handleMouseEnterEvent(static_cast<const WebMouseEvent&>(*currentEvent)); } else if (event->type() == eventNames().mouseoutEvent && currentEvent->type() == WebEvent::MouseMove) { // We have a mouse leave event. didHandleEvent = m_plugin->handleMouseLeaveEvent(static_cast<const WebMouseEvent&>(*currentEvent)); } if (didHandleEvent) event->setDefaultHandled(); }
void PluginView::handleEvent(Event* event) { if (!m_isInitialized || !m_plugin) return; const WebEvent* currentEvent = WebPage::currentEvent(); if (!currentEvent) return; bool didHandleEvent = false; if ((event->type() == eventNames().mousemoveEvent && currentEvent->type() == WebEvent::MouseMove) || (event->type() == eventNames().mousedownEvent && currentEvent->type() == WebEvent::MouseDown) || (event->type() == eventNames().mouseupEvent && currentEvent->type() == WebEvent::MouseUp)) { // We have a mouse event. // FIXME: Clicking in a scroll bar should not change focus. if (currentEvent->type() == WebEvent::MouseDown) { focusPluginElement(); frame()->eventHandler()->setCapturingMouseEventsNode(m_pluginElement.get()); } else if (currentEvent->type() == WebEvent::MouseUp) frame()->eventHandler()->setCapturingMouseEventsNode(0); didHandleEvent = m_plugin->handleMouseEvent(static_cast<const WebMouseEvent&>(*currentEvent)); } else if (event->type() == eventNames().mousewheelEvent && currentEvent->type() == WebEvent::Wheel && m_plugin->wantsWheelEvents()) { // We have a wheel event. didHandleEvent = m_plugin->handleWheelEvent(static_cast<const WebWheelEvent&>(*currentEvent)); } else if (event->type() == eventNames().mouseoverEvent && currentEvent->type() == WebEvent::MouseMove) { // We have a mouse enter event. didHandleEvent = m_plugin->handleMouseEnterEvent(static_cast<const WebMouseEvent&>(*currentEvent)); } else if (event->type() == eventNames().mouseoutEvent && currentEvent->type() == WebEvent::MouseMove) { // We have a mouse leave event. didHandleEvent = m_plugin->handleMouseLeaveEvent(static_cast<const WebMouseEvent&>(*currentEvent)); } else if (event->type() == eventNames().contextmenuEvent && currentEvent->type() == WebEvent::MouseDown) { // We have a context menu event. didHandleEvent = m_plugin->handleContextMenuEvent(static_cast<const WebMouseEvent&>(*currentEvent)); } else if ((event->type() == eventNames().keydownEvent && currentEvent->type() == WebEvent::KeyDown) || (event->type() == eventNames().keyupEvent && currentEvent->type() == WebEvent::KeyUp)) { // We have a keyboard event. didHandleEvent = m_plugin->handleKeyboardEvent(static_cast<const WebKeyboardEvent&>(*currentEvent)); } if (didHandleEvent) event->setDefaultHandled(); }