webengine/osswebengine/WebKit/s60/webview/WebScrollingDeceleratorGH.cpp
changeset 5 10e98eab6f85
parent 0 dd21522fd290
child 28 d39add9822e2
--- a/webengine/osswebengine/WebKit/s60/webview/WebScrollingDeceleratorGH.cpp	Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebScrollingDeceleratorGH.cpp	Fri Jul 03 15:54:40 2009 +0100
@@ -163,27 +163,25 @@
     TPoint cpos = scrollingView->contentPos();
     dist = scrollingView->toDocCoords(dist);
     TPoint pos = m_startPos + dist;
-    
-    if ((vx * m_initSpeed.iX < 0) || (vy * m_initSpeed.iY < 0) || (vx + vy == 0) ||
-        (m_numscrollsteps > 1 && !scrollingView->needScroll(pos))) {
+   
+    WebPageScrollHandler* handler = m_webView.pageScrollHandler();
+
+    if ((vx * m_initSpeed.iX < 0) || (vy * m_initSpeed.iY < 0) || (vx + vy == 0) || 
+        (m_numscrollsteps > 1 && !scrollingView->needScroll(pos) && 
+        !handler->currentScrollingElement())) {
         if (m_scrollbarDrawer) {
             m_scrollbarDrawer->fadeScrollbar();
         }
         m_decelTimer->Cancel();
+        handler->clearScrollingElement();
         m_webView.setViewIsScrolling(false);
         m_webView.toggleRepaintTimer(true);
     }
     else {
-        scrollingView->scrollTo(pos);
-        if (m_scrollbarDrawer) {
-            TPoint scrollDelta = pos - m_lastPos;
-            scrollDelta.iX *= 100;
-            scrollDelta.iY *= 100;
-            m_webView.pageScrollHandler()->updateScrollbars(pos, scrollDelta);   
-        }
+        TPoint scrollDelta = pos - m_lastPos;
+        handler->scrollContent(scrollDelta);
         m_lastPos = pos;
-    }
-    
+    }  
 }