webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp
branchRCL_3
changeset 84 800203832575
parent 73 a1a5d4e727e8
child 92 e1bea15f9a39
--- a/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp	Wed Jun 09 10:52:50 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp	Mon Jun 21 16:54:17 2010 +0300
@@ -111,10 +111,11 @@
     TBrCtlDefs::TBrCtlElementType elType = m_webview->focusedElementType();
     
     bool pluginConsumable = isPluginConsumable(uid);
+    PluginHandler* pluginHandler = StaticObjectsContainer::instance()->pluginHandler();
     
-    if (pluginConsumable && m_webview->getVisiblePlugins().Count() > 0) {
-        for ( int i=0; i < m_webview->getVisiblePlugins().Count(); i++) {
-             PluginSkin* plugin = m_webview->getVisiblePlugins()[i];
+    if (pluginConsumable && pluginHandler->getVisiblePlugins().Count() > 0) {
+        for ( int i=0; i < pluginHandler->getVisiblePlugins().Count(); i++) {
+             PluginSkin* plugin = pluginHandler->getVisiblePlugins()[i];
              if (plugin && plugin->pluginWin() && plugin->pluginWin()->containsPoint(*m_webview,aGesture.CurrentPos())) {
                  if (plugin->pluginWin()->HandleGesture(aGesture)) {
                      if(!plugin->isActive()) {
@@ -170,6 +171,7 @@
             m_ignoreTap = false;
             handleTouchUp(aGesture);
 			m_webview->resumeJsTimers(); // resume js timers
+			m_webview->setViewIsScrolling(false); 
             break;
         }
 
@@ -179,8 +181,6 @@
             if(!m_webview->jsTimersPaused()) 
                 m_webview->pauseJsTimers();
 
-            if(!m_webview->isScrolling())
-                m_webview->setScrolling(true);
             handleMove(aGesture);
             break;
         }
@@ -199,6 +199,9 @@
 
         case stmGesture::EGestureUidPinch:
         {
+        if (m_webview->viewIsScrolling()) {
+            m_webview->pageScrollHandler()->stopScrolling();
+        }
         if(!m_webview->inPageViewMode())
             {
             handlePinchZoomL(aGesture);
@@ -621,9 +624,11 @@
 bool WebPointerEventHandler::isPluginConsumable(const TStmGestureUid uid)
 {
     //  Gestures which a Plugin can consume
-    return (uid == stmGesture::EGestureUidRelease ||
-            uid == stmGesture::EGestureUidTap ||
-            uid == stmGesture::EGestureUidTouch ||
-            uid == stmGesture::EGestureUidLongPress ||
-            (uid == stmGesture::EGestureUidPan && m_webview->widgetExtension())); // Currently Pan is consumed in Widget mode
+    return ( uid == stmGesture::EGestureUidRelease ||
+             uid == stmGesture::EGestureUidTap ||
+             uid == stmGesture::EGestureUidTouch ||
+             uid == stmGesture::EGestureUidLongPress ||
+             (uid == stmGesture::EGestureUidPan && m_webview->widgetExtension()) ||     // Currently Pan is consumed in Widget mode
+             (uid == stmGesture::EGestureUidFlick && m_webview->widgetExtension())
+           ); 
 }