webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp
branchRCL_3
changeset 92 e1bea15f9a39
parent 84 800203832575
child 93 79859ed3eea9
--- a/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp	Thu Jul 15 19:53:20 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp	Thu Aug 19 10:58:56 2010 +0300
@@ -118,13 +118,16 @@
              PluginSkin* plugin = pluginHandler->getVisiblePlugins()[i];
              if (plugin && plugin->pluginWin() && plugin->pluginWin()->containsPoint(*m_webview,aGesture.CurrentPos())) {
                  if (plugin->pluginWin()->HandleGesture(aGesture)) {
-                     if(!plugin->isActive()) {
-                         plugin->activate();
-                     }
-                     else {
-                         m_webview->mainFrame()->frameView()->topView()->setFocusedElementType(TBrCtlDefs::EElementActivatedObjectBox);
-                         m_webview->page()->focusController()->setFocusedNode(plugin->getElement(), m_webview->page()->focusController()->focusedOrMainFrame());                        
-                         m_webview->brCtl()->updateDefaultSoftkeys();
+                     // Above call can end up in the deletion of the plugin, so check if the plugin is still alive
+                     if (pluginHandler->getVisiblePlugins().Find(plugin) != KErrNotFound) {
+                         if(!plugin->isActive()) {
+                             plugin->activate();
+                         }
+                         else {
+                             m_webview->mainFrame()->frameView()->topView()->setFocusedElementType(TBrCtlDefs::EElementActivatedObjectBox);
+                             m_webview->page()->focusController()->setFocusedNode(plugin->getElement(), m_webview->page()->focusController()->focusedOrMainFrame());                        
+                             m_webview->brCtl()->updateDefaultSoftkeys();
+                         }
                      }
                      return;
                  }
@@ -470,14 +473,13 @@
      m_lastTapEvent.iType = TPointerEvent::EButton1Up;
      m_lastTapEvent.iModifiers = 0;
 
-    // don't pass the event if the text input is not in valid format
-    if (m_webview->fepTextEditor()->validateTextFormat()) {
-        if (!IS_NAVIGATION_NONE) {
-            // in case of navigation none button down was sent in buttonDownTimerCB()
-            m_webview->sendMouseEventToEngine(TPointerEvent::EButton1Down, m_highlightPos, coreFrame);
-        }
-        m_webview->sendMouseEventToEngine(TPointerEvent::EButton1Up,  m_highlightPos, coreFrame);
-    }
+     m_webview->fepTextEditor()->validateTextFormat();
+     
+     if (!IS_NAVIGATION_NONE) {
+         // in case of navigation none button down was sent in buttonDownTimerCB()
+         m_webview->sendMouseEventToEngine(TPointerEvent::EButton1Down, m_highlightPos, coreFrame);
+     }
+     m_webview->sendMouseEventToEngine(TPointerEvent::EButton1Up,  m_highlightPos, coreFrame);
 
     // special handling for broken image (why is this here??)
     if (elType == TBrCtlDefs::EElementBrokenImage) {