webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp
branchRCL_3
changeset 84 800203832575
parent 73 a1a5d4e727e8
child 92 e1bea15f9a39
equal deleted inserted replaced
73:a1a5d4e727e8 84:800203832575
   109         return;
   109         return;
   110     
   110     
   111     TBrCtlDefs::TBrCtlElementType elType = m_webview->focusedElementType();
   111     TBrCtlDefs::TBrCtlElementType elType = m_webview->focusedElementType();
   112     
   112     
   113     bool pluginConsumable = isPluginConsumable(uid);
   113     bool pluginConsumable = isPluginConsumable(uid);
   114     
   114     PluginHandler* pluginHandler = StaticObjectsContainer::instance()->pluginHandler();
   115     if (pluginConsumable && m_webview->getVisiblePlugins().Count() > 0) {
   115     
   116         for ( int i=0; i < m_webview->getVisiblePlugins().Count(); i++) {
   116     if (pluginConsumable && pluginHandler->getVisiblePlugins().Count() > 0) {
   117              PluginSkin* plugin = m_webview->getVisiblePlugins()[i];
   117         for ( int i=0; i < pluginHandler->getVisiblePlugins().Count(); i++) {
       
   118              PluginSkin* plugin = pluginHandler->getVisiblePlugins()[i];
   118              if (plugin && plugin->pluginWin() && plugin->pluginWin()->containsPoint(*m_webview,aGesture.CurrentPos())) {
   119              if (plugin && plugin->pluginWin() && plugin->pluginWin()->containsPoint(*m_webview,aGesture.CurrentPos())) {
   119                  if (plugin->pluginWin()->HandleGesture(aGesture)) {
   120                  if (plugin->pluginWin()->HandleGesture(aGesture)) {
   120                      if(!plugin->isActive()) {
   121                      if(!plugin->isActive()) {
   121                          plugin->activate();
   122                          plugin->activate();
   122                      }
   123                      }
   168         case stmGesture::EGestureUidRelease:
   169         case stmGesture::EGestureUidRelease:
   169         {
   170         {
   170             m_ignoreTap = false;
   171             m_ignoreTap = false;
   171             handleTouchUp(aGesture);
   172             handleTouchUp(aGesture);
   172 			m_webview->resumeJsTimers(); // resume js timers
   173 			m_webview->resumeJsTimers(); // resume js timers
       
   174 			m_webview->setViewIsScrolling(false); 
   173             break;
   175             break;
   174         }
   176         }
   175 
   177 
   176         case stmGesture::EGestureUidPan:
   178         case stmGesture::EGestureUidPan:
   177         {
   179         {
   178             // pause js timers (if not already done)
   180             // pause js timers (if not already done)
   179             if(!m_webview->jsTimersPaused()) 
   181             if(!m_webview->jsTimersPaused()) 
   180                 m_webview->pauseJsTimers();
   182                 m_webview->pauseJsTimers();
   181 
   183 
   182             if(!m_webview->isScrolling())
       
   183                 m_webview->setScrolling(true);
       
   184             handleMove(aGesture);
   184             handleMove(aGesture);
   185             break;
   185             break;
   186         }
   186         }
   187         case stmGesture::EGestureUidFlick:
   187         case stmGesture::EGestureUidFlick:
   188         {
   188         {
   197             break;
   197             break;
   198         }
   198         }
   199 
   199 
   200         case stmGesture::EGestureUidPinch:
   200         case stmGesture::EGestureUidPinch:
   201         {
   201         {
       
   202         if (m_webview->viewIsScrolling()) {
       
   203             m_webview->pageScrollHandler()->stopScrolling();
       
   204         }
   202         if(!m_webview->inPageViewMode())
   205         if(!m_webview->inPageViewMode())
   203             {
   206             {
   204             handlePinchZoomL(aGesture);
   207             handlePinchZoomL(aGesture);
   205             if(aGesture.GestureState() != EGestureEnter) {
   208             if(aGesture.GestureState() != EGestureEnter) {
   206                 m_webview->resumeJsTimers(); // resume js timers
   209                 m_webview->resumeJsTimers(); // resume js timers
   619 // WebPointerEventHandler::isPluginConsumable
   622 // WebPointerEventHandler::isPluginConsumable
   620 //-----------------------------------------------------------------------------
   623 //-----------------------------------------------------------------------------
   621 bool WebPointerEventHandler::isPluginConsumable(const TStmGestureUid uid)
   624 bool WebPointerEventHandler::isPluginConsumable(const TStmGestureUid uid)
   622 {
   625 {
   623     //  Gestures which a Plugin can consume
   626     //  Gestures which a Plugin can consume
   624     return (uid == stmGesture::EGestureUidRelease ||
   627     return ( uid == stmGesture::EGestureUidRelease ||
   625             uid == stmGesture::EGestureUidTap ||
   628              uid == stmGesture::EGestureUidTap ||
   626             uid == stmGesture::EGestureUidTouch ||
   629              uid == stmGesture::EGestureUidTouch ||
   627             uid == stmGesture::EGestureUidLongPress ||
   630              uid == stmGesture::EGestureUidLongPress ||
   628             (uid == stmGesture::EGestureUidPan && m_webview->widgetExtension())); // Currently Pan is consumed in Widget mode
   631              (uid == stmGesture::EGestureUidPan && m_webview->widgetExtension()) ||     // Currently Pan is consumed in Widget mode
   629 }
   632              (uid == stmGesture::EGestureUidFlick && m_webview->widgetExtension())
       
   633            ); 
       
   634 }