diff -r d39add9822e2 -r 5bfc169077b2 webengine/osswebengine/WebKit/s60/plugins/PluginWin.cpp --- a/webengine/osswebengine/WebKit/s60/plugins/PluginWin.cpp Tue Feb 02 00:56:45 2010 +0200 +++ b/webengine/osswebengine/WebKit/s60/plugins/PluginWin.cpp Fri Mar 19 09:52:28 2010 +0200 @@ -28,9 +28,9 @@ #include "WebFrame.h" #include "HttpDefs.h" -#include +#include "BrCtlDefs.h" #include "StaticObjectsContainer.h" -#include +#include #include "PluginWin.h" #include "PluginSkin.h" #include "PluginHandler.h" @@ -45,11 +45,8 @@ #include "WebPageScrollHandler.h" #include "WebKitLogger.h" -#include - using namespace WebCore; using namespace RT_GestureHelper; -using namespace stmGesture; // CONSTANTS const TInt KPluginGranularity = 3; _LIT(KPath,"c:\\system\\temp\\"); @@ -275,16 +272,12 @@ ret = m_control->OfferKeyEventL( aKeyEvent, aType ); } else if (!m_windowedPlugin && m_pluginskin->getNPPluginFucs() && m_pluginskin->getNPPluginFucs()->event) { - WebCursor* c = StaticObjectsContainer::instance()->webCursor(); - TPoint pt = (c->position()); - pt = m_pluginskin->frame()->frameView()->viewCoordsInFrameCoords(pt); - pt -= m_pluginskin->rect().iTl; NPEvent event; NPEventKey eventKey; event.event = ENppEventKey; eventKey.keyEvent = &aKeyEvent; eventKey.type = aType; - eventKey.reserved = static_cast(&pt); + eventKey.reserved = NULL; event.param = &eventKey; ret = (TKeyResponse)m_pluginskin->getNPPluginFucs()->event(m_pluginskin->getNPP(), static_cast(&event)); } @@ -719,74 +712,24 @@ { CBrCtl* brCtl = control(m_pluginskin->frame()); WebView* view = brCtl->webView(); -#ifdef BRDO_MULTITOUCH_ENABLED_FF - if (aEvent.IsAdvancedPointerEvent()) { - TAdvancedPointerEvent tadvp = *(static_cast(&aEvent)); - if (!StaticObjectsContainer::instance()->isPluginFullscreen()) { - tadvp.iPosition = aEvent.iPosition - view->PositionRelativeToScreen(); - } - view->pointerEventHandler()->HandlePointerEventL(tadvp); + TPointerEvent event(aEvent); + + if (!StaticObjectsContainer::instance()->isPluginFullscreen()) { + event.iPosition = aEvent.iPosition - view->PositionRelativeToScreen(); } - else { -#endif - TPointerEvent event(aEvent); - if (!StaticObjectsContainer::instance()->isPluginFullscreen()) { - event.iPosition = aEvent.iPosition - view->PositionRelativeToScreen(); - } - view->pointerEventHandler()->HandlePointerEventL(event); -#ifdef BRDO_MULTITOUCH_ENABLED_FF - } -#endif + view->pointerEventHandler()->HandlePointerEventL(event); } -TBool PluginWin::HandleGesture(const TStmGestureEvent& aEvent) +TBool PluginWin::HandleGesture(const TGestureEvent& aEvent) { TBool ret = EFalse; - - TGestureEvent eventForPlugin; - switch(aEvent.Code()) - { - case EGestureUidUnknown : - eventForPlugin.SetCode(EGestureUnknown); - break; - case EGestureUidTouch : - eventForPlugin.SetCode(EGestureStart); - break; - case EGestureUidTap : - if(aEvent.Type() == ETapTypeSingle) - eventForPlugin.SetCode(EGestureTap); - else - eventForPlugin.SetCode(EGestureDoubleTap); - break; - case EGestureUidLongPress : - eventForPlugin.SetCode(EGestureLongTap); - break; - case EGestureUidPan : - eventForPlugin.SetCode(EGestureDrag); - break; - case EGestureUidRelease : - eventForPlugin.SetCode(EGestureReleased); - break; - case EGestureUidFlick : - eventForPlugin.SetCode(EGestureFlick); - break; - case EGestureUidPinch : - eventForPlugin.SetCode(EGesturePinch); - break; - default : - break; - - } - - - if (m_control) { + TGestureEvent gestEvent(aEvent); CBrCtl* brCtl = control(m_pluginskin->frame()); WebView* view = brCtl->webView(); TPoint newPos = aEvent.CurrentPos(); - // Not sure plugins need the start position of the gesture. Not inlcuded in the new struct - TPoint startPos = aEvent.CurrentPos(); + TPoint startPos = aEvent.StartPos(); TPoint viewPos = view->PositionRelativeToScreen(); TPoint ctrlPos = m_control->PositionRelativeToScreen(); @@ -794,50 +737,35 @@ // adjust the position to make it relative to top left corner of newPos += viewPos; startPos += viewPos; + gestEvent.SetCurrentPos(newPos); + gestEvent.SetStartPos(startPos); } - eventForPlugin.SetCurrentPos(newPos); - eventForPlugin.SetStartPos(startPos); - if (StaticObjectsContainer::instance()->isPluginFullscreen() || + + if (StaticObjectsContainer::instance()->isPluginFullscreen() || m_control->Rect().Contains(newPos - ctrlPos)) { NPEvent event; NPEventPointer ev; event.event = ENppEventPointer; - ev.reserved = &eventForPlugin; + ev.reserved = &gestEvent; ev.pointerEvent = NULL; event.param = &ev; ret = m_pluginskin->getNPPluginFucs()->event(m_pluginskin->getNPP(), static_cast(&event)); - - if (eventForPlugin.Code(EAxisBoth) == EGestureTap) { - eventForPlugin.SetCode(EGestureReleased); - ret = m_pluginskin->getNPPluginFucs()->event(m_pluginskin->getNPP(), - static_cast(&event)); - - } } } else if(!m_windowedPlugin && m_pluginskin->getNPPluginFucs() && m_pluginskin->getNPPluginFucs()->event){ TRect cliprect = m_pluginskin->getClipRect(); - TPoint newPos = aEvent.CurrentPos(); - eventForPlugin.SetCurrentPos(newPos); - eventForPlugin.SetCurrentPos(newPos); - - if(cliprect.Contains(newPos)){ + TPoint newpos = aEvent.CurrentPos(); + if(cliprect.Contains(newpos)){ + TGestureEvent gestEvent(aEvent); NPEvent event; NPEventPointer ev; event.event = ENppEventPointer; - ev.reserved = &eventForPlugin; + ev.reserved = &gestEvent; ev.pointerEvent = NULL; event.param = &ev; ret = m_pluginskin->getNPPluginFucs()->event(m_pluginskin->getNPP(), static_cast(&event)); - - if (eventForPlugin.Code(EAxisBoth) == EGestureTap) { - eventForPlugin.SetCode(EGestureReleased); - ret = m_pluginskin->getNPPluginFucs()->event(m_pluginskin->getNPP(), - static_cast(&event)); - - } } } return ret;