diff -r 220a17280356 -r 1f3c3f2f5b0a webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp --- a/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp Fri Mar 12 15:48:51 2010 +0200 +++ b/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp Mon Mar 15 12:44:50 2010 +0200 @@ -357,6 +357,7 @@ WebScrollingDeceleratorGH* scrollDecelGH = m_webview->pageScrollHandler()->ScrollingDeceleratorGH(); if(scrollDecelGH) { scrollDecelGH->cancelDecel(); + m_webview->setViewIsScrolling(false); } } @@ -415,8 +416,8 @@ Element* eventNode = frm->document()->elementFromPoint(pt.iX, pt.iY); if (m_isHighlighted){ - dehighlight(); - } + dehighlight(pos); + } m_highlightedNode = NULL; @@ -537,15 +538,14 @@ //----------------------------------------------------------------------------- // WebPointerEventHandler::deHighlight //----------------------------------------------------------------------------- -void WebPointerEventHandler::dehighlight() +void WebPointerEventHandler::dehighlight(const TPoint &aPoint) { - // send dehighlight event to engine by passing -1, -1 - // sending any other pointer value may result in highligh of other links + // m_highlightPos should be (-1, -1). m_highlightPos = TPoint(-1, -1); m_isHighlighted = EFalse; Frame* frm = m_webview->page()->focusController()->focusedOrMainFrame(); - m_webview->sendMouseEventToEngine(TPointerEvent::EMove, m_highlightPos, frm); + m_webview->sendMouseEventToEngine(TPointerEvent::EMove, aPoint, frm); m_highlightedNode = NULL; @@ -598,6 +598,10 @@ Frame* coreFrame = core(m_webview->mainFrame()); TPointerEvent event; + if (!IS_NAVIGATION_NONE) { + m_webview->page()->chrome()->client()->setElementVisibilityChanged(false); + } + TBrCtlDefs::TBrCtlElementType elType = highlitableElement(); if (!isHighlitableElement(elType)) { @@ -619,7 +623,6 @@ } if (!IS_NAVIGATION_NONE) { - m_webview->page()->chrome()->client()->setElementVisibilityChanged(false); //to initiate hover if (m_isHighlighted) { setFocusRing();