webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp
branchRCL_3
changeset 35 1f3c3f2f5b0a
parent 34 220a17280356
child 36 c711bdda59f4
equal deleted inserted replaced
34:220a17280356 35:1f3c3f2f5b0a
   355     //if scrolling is going on, it need to be stopped immediately when user touches down    
   355     //if scrolling is going on, it need to be stopped immediately when user touches down    
   356     if (aPointerEvent.iType == TPointerEvent::EButton1Down && m_webview->viewIsScrolling()) {
   356     if (aPointerEvent.iType == TPointerEvent::EButton1Down && m_webview->viewIsScrolling()) {
   357         WebScrollingDeceleratorGH* scrollDecelGH = m_webview->pageScrollHandler()->ScrollingDeceleratorGH();
   357         WebScrollingDeceleratorGH* scrollDecelGH = m_webview->pageScrollHandler()->ScrollingDeceleratorGH();
   358         if(scrollDecelGH) {
   358         if(scrollDecelGH) {
   359             scrollDecelGH->cancelDecel();
   359             scrollDecelGH->cancelDecel();
       
   360             m_webview->setViewIsScrolling(false);
   360         }
   361         }
   361     }
   362     }
   362     
   363     
   363 #ifdef BRDO_USE_GESTURE_HELPER
   364 #ifdef BRDO_USE_GESTURE_HELPER
   364       m_gestureInterface->HandlePointerEventL(aPointerEvent);
   365       m_gestureInterface->HandlePointerEventL(aPointerEvent);
   413     TPoint nodePoint;
   414     TPoint nodePoint;
   414 
   415 
   415     Element* eventNode = frm->document()->elementFromPoint(pt.iX, pt.iY);
   416     Element* eventNode = frm->document()->elementFromPoint(pt.iX, pt.iY);
   416 
   417 
   417     if (m_isHighlighted){
   418     if (m_isHighlighted){
   418                dehighlight();
   419         dehighlight(pos);
   419            }
   420     }
   420 
   421 
   421     m_highlightedNode = NULL;
   422     m_highlightedNode = NULL;
   422 
   423 
   423     Node* retNode = 0;
   424     Node* retNode = 0;
   424     frm->bridge()->getTypeFromElement(eventNode, elType, elRect, retNode);
   425     frm->bridge()->getTypeFromElement(eventNode, elType, elRect, retNode);
   535 
   536 
   536 
   537 
   537 //-----------------------------------------------------------------------------
   538 //-----------------------------------------------------------------------------
   538 // WebPointerEventHandler::deHighlight
   539 // WebPointerEventHandler::deHighlight
   539 //-----------------------------------------------------------------------------
   540 //-----------------------------------------------------------------------------
   540 void  WebPointerEventHandler::dehighlight()
   541 void  WebPointerEventHandler::dehighlight(const TPoint &aPoint)
   541 {
   542 {
   542     // send dehighlight event to engine by passing -1, -1
   543     // m_highlightPos should be (-1, -1). 
   543     // sending any other pointer value may result in highligh of other links
       
   544     m_highlightPos = TPoint(-1, -1);
   544     m_highlightPos = TPoint(-1, -1);
   545     m_isHighlighted = EFalse;
   545     m_isHighlighted = EFalse;
   546 
   546 
   547     Frame* frm = m_webview->page()->focusController()->focusedOrMainFrame();
   547     Frame* frm = m_webview->page()->focusController()->focusedOrMainFrame();
   548     m_webview->sendMouseEventToEngine(TPointerEvent::EMove, m_highlightPos, frm);
   548     m_webview->sendMouseEventToEngine(TPointerEvent::EMove, aPoint, frm);
   549 
   549 
   550 
   550 
   551     m_highlightedNode = NULL;
   551     m_highlightedNode = NULL;
   552 
   552 
   553     m_webview->syncRepaint();
   553     m_webview->syncRepaint();
   596     m_buttonDownTimer.stop();
   596     m_buttonDownTimer.stop();
   597 
   597 
   598     Frame* coreFrame = core(m_webview->mainFrame());
   598     Frame* coreFrame = core(m_webview->mainFrame());
   599     TPointerEvent event;
   599     TPointerEvent event;
   600 
   600 
       
   601     if (!IS_NAVIGATION_NONE) {
       
   602         m_webview->page()->chrome()->client()->setElementVisibilityChanged(false);
       
   603     }
       
   604     
   601     TBrCtlDefs::TBrCtlElementType elType = highlitableElement();
   605     TBrCtlDefs::TBrCtlElementType elType = highlitableElement();
   602 
   606 
   603     if (!isHighlitableElement(elType)) {
   607     if (!isHighlitableElement(elType)) {
   604         elType = TBrCtlDefs::EElementNone;
   608         elType = TBrCtlDefs::EElementNone;
   605     }
   609     }
   617         elType == TBrCtlDefs::EElementTextAreaBox) {
   621         elType == TBrCtlDefs::EElementTextAreaBox) {
   618         coreFrame->document()->setFocusedNode(NULL);
   622         coreFrame->document()->setFocusedNode(NULL);
   619     }
   623     }
   620 
   624 
   621     if (!IS_NAVIGATION_NONE) {
   625     if (!IS_NAVIGATION_NONE) {
   622         m_webview->page()->chrome()->client()->setElementVisibilityChanged(false);
       
   623         //to initiate hover
   626         //to initiate hover
   624         if (m_isHighlighted) {
   627         if (m_isHighlighted) {
   625             setFocusRing();
   628             setFocusRing();
   626         }
   629         }
   627 
   630