equal
deleted
inserted
replaced
35 #include "RenderObject.h" |
35 #include "RenderObject.h" |
36 #include "WebScrollingDeceleratorGH.h" |
36 #include "WebScrollingDeceleratorGH.h" |
37 |
37 |
38 #include "WebKitLogger.h" |
38 #include "WebKitLogger.h" |
39 using namespace WebCore; |
39 using namespace WebCore; |
40 using namespace RT_GestureHelper; |
|
41 // constants |
40 // constants |
42 const int KPageOverviewScrollPeriodic = 20 * 1000; // Update frequently for faster, smoother scrolling |
41 const int KPageOverviewScrollPeriodic = 20 * 1000; // Update frequently for faster, smoother scrolling |
43 const int KMicroInterval = 300000; |
42 const int KMicroInterval = 300000; |
44 const int KPageOverviewScrollStart = 1000; |
43 const int KPageOverviewScrollStart = 1000; |
45 const int KCancelDecelerationTimeout = 200000; //Decelerate only if flicked KCancelDecelerationTimeout microsec after last drag event. |
44 const int KCancelDecelerationTimeout = 200000; //Decelerate only if flicked KCancelDecelerationTimeout microsec after last drag event. |
603 m_webView->mainFrame()->frameView()->scrollTo(TPoint(xInDoc, yInDoc)); |
602 m_webView->mainFrame()->frameView()->scrollTo(TPoint(xInDoc, yInDoc)); |
604 |
603 |
605 } |
604 } |
606 |
605 |
607 |
606 |
608 void WebPageScrollHandler::handleScrollingGH(const TGestureEvent& aEvent) |
607 void WebPageScrollHandler::handleScrollingGH(const TStmGestureEvent& aGesture) |
609 { |
608 { |
610 TPoint newPos = aEvent.CurrentPos(); |
609 TPoint newPos = aGesture.CurrentPos(); |
611 m_currentPosition = newPos; |
610 m_currentPosition = newPos; |
612 if (m_webView->inPageViewMode()) { |
611 if (m_webView->inPageViewMode()) { |
613 if (!m_pageOverviewScrollPeriodic->IsActive()){ |
612 if (!m_pageOverviewScrollPeriodic->IsActive()){ |
614 m_pageOverviewScrollPeriodic->Start( 0, KPageOverviewScrollPeriodic, |
613 m_pageOverviewScrollPeriodic->Start( 0, KPageOverviewScrollPeriodic, |
615 TCallBack(&pageOverviewScrollCallback, this)); |
614 TCallBack(&pageOverviewScrollCallback, this)); |
621 setupScrolling(newPos); |
620 setupScrolling(newPos); |
622 } |
621 } |
623 } |
622 } |
624 |
623 |
625 |
624 |
626 void WebPageScrollHandler::handleTouchDownGH(const TGestureEvent& aEvent) |
625 void WebPageScrollHandler::handleTouchDownGH(const TStmGestureEvent& aGesture) |
627 { |
626 { |
628 TPoint newPos = aEvent.CurrentPos(); |
627 TPoint newPos = aGesture.CurrentPos(); |
629 m_lastMoveEventTime = 0; |
628 m_lastMoveEventTime = 0; |
630 m_lastPosition = newPos; |
629 m_lastPosition = newPos; |
631 m_currentPosition = newPos; |
630 m_currentPosition = newPos; |
632 m_webView->setViewIsScrolling(false); |
631 m_webView->setViewIsScrolling(false); |
633 m_webView->toggleRepaintTimer(true); |
632 m_webView->toggleRepaintTimer(true); |
638 m_scrollableView.m_scrollingElement = NULL; |
637 m_scrollableView.m_scrollingElement = NULL; |
639 m_scrollableView.m_frameView = NULL; |
638 m_scrollableView.m_frameView = NULL; |
640 } |
639 } |
641 |
640 |
642 |
641 |
643 void WebPageScrollHandler::handleTouchUpGH(const TGestureEvent& aEvent) |
642 void WebPageScrollHandler::handleTouchUpGH(const TStmGestureEvent& aGesture) |
644 { |
643 { |
645 bool decelDoesScrollbars = false; |
644 bool decelDoesScrollbars = false; |
646 TPoint newPos = aEvent.CurrentPos(); |
645 TPoint newPos = aGesture.CurrentPos(); |
647 |
646 |
648 if (m_webView->inPageViewMode()) { |
647 if (m_webView->inPageViewMode()) { |
649 if (m_pageOverviewScrollPeriodic->IsActive()){ |
648 if (m_pageOverviewScrollPeriodic->IsActive()){ |
650 m_pageOverviewScrollPeriodic->Cancel(); |
649 m_pageOverviewScrollPeriodic->Cancel(); |
651 } |
650 } |
655 m_webView->toggleRepaintTimer(true); |
654 m_webView->toggleRepaintTimer(true); |
656 } |
655 } |
657 else { |
656 else { |
658 m_scrollTimer->Cancel(); |
657 m_scrollTimer->Cancel(); |
659 m_lastPosition = TPoint(0, 0); |
658 m_lastPosition = TPoint(0, 0); |
660 decelDoesScrollbars = startDeceleration(aEvent); |
659 decelDoesScrollbars = startDeceleration(aGesture); |
661 |
660 |
662 if (m_webView->viewIsScrolling()) { |
661 if (m_webView->viewIsScrolling()) { |
663 Frame* frame = m_webView->page()->focusController()->focusedOrMainFrame(); |
662 Frame* frame = m_webView->page()->focusController()->focusedOrMainFrame(); |
664 frame->bridge()->sendScrollEvent(); |
663 frame->bridge()->sendScrollEvent(); |
665 } |
664 } |
673 m_lastMoveEventTime = 0; |
672 m_lastMoveEventTime = 0; |
674 } |
673 } |
675 } |
674 } |
676 |
675 |
677 |
676 |
678 bool WebPageScrollHandler::startDeceleration(const TGestureEvent& aEvent) |
677 bool WebPageScrollHandler::startDeceleration(const TStmGestureEvent& aGesture) |
679 { |
678 { |
680 bool started = false; |
679 bool started = false; |
681 TRealPoint gstSpeed = aEvent.Speed(); |
680 TRealPoint gstSpeed = aGesture.Speed(); |
682 if (Abs(gstSpeed.iX / gstSpeed.iY) <= KTanOfThresholdAngle) { |
681 if (Abs(gstSpeed.iX / gstSpeed.iY) <= KTanOfThresholdAngle) { |
683 gstSpeed.iX = 0; |
682 gstSpeed.iX = 0; |
684 } |
683 } |
685 |
684 |
686 if (Abs(gstSpeed.iY / gstSpeed.iX) <= KTanOfThresholdAngle) { |
685 if (Abs(gstSpeed.iY / gstSpeed.iX) <= KTanOfThresholdAngle) { |