OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> | 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> |
3 * 1999 Lars Knoll <knoll@kde.org> | 3 * 1999 Lars Knoll <knoll@kde.org> |
4 * 1999 Antti Koivisto <koivisto@kde.org> | 4 * 1999 Antti Koivisto <koivisto@kde.org> |
5 * 2000 Simon Hausmann <hausmann@kde.org> | 5 * 2000 Simon Hausmann <hausmann@kde.org> |
6 * 2000 Stefan Schimanski <1Stein@gmx.de> | 6 * 2000 Stefan Schimanski <1Stein@gmx.de> |
7 * 2001 George Staikos <staikos@kde.org> | 7 * 2001 George Staikos <staikos@kde.org> |
8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. | 8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. |
9 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> | 9 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> |
10 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 10 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
(...skipping 747 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
758 bool LocalFrame::shouldReuseDefaultView(const KURL& url) const | 758 bool LocalFrame::shouldReuseDefaultView(const KURL& url) const |
759 { | 759 { |
760 return loader().stateMachine()->isDisplayingInitialEmptyDocument() && docume
nt()->isSecureTransitionTo(url); | 760 return loader().stateMachine()->isDisplayingInitialEmptyDocument() && docume
nt()->isSecureTransitionTo(url); |
761 } | 761 } |
762 | 762 |
763 void LocalFrame::removeSpellingMarkersUnderWords(const Vector<String>& words) | 763 void LocalFrame::removeSpellingMarkersUnderWords(const Vector<String>& words) |
764 { | 764 { |
765 spellChecker().removeSpellingMarkersUnderWords(words); | 765 spellChecker().removeSpellingMarkersUnderWords(words); |
766 } | 766 } |
767 | 767 |
| 768 static bool scrollAreaOnBothAxes(const FloatSize& delta, ScrollableArea& view) |
| 769 { |
| 770 bool scrolledHorizontal = view.scroll(ScrollLeft, ScrollByPrecisePixel, delt
a.width()); |
| 771 bool scrolledVertical = view.scroll(ScrollUp, ScrollByPrecisePixel, delta.he
ight()); |
| 772 return scrolledHorizontal || scrolledVertical; |
| 773 } |
| 774 |
| 775 // Returns true if a scroll occurred. |
| 776 bool LocalFrame::applyScrollDelta(const FloatSize& delta, bool isScrollBegin) |
| 777 { |
| 778 if (isScrollBegin) |
| 779 host()->topControls().scrollBegin(); |
| 780 |
| 781 if (!view() || delta.isZero()) |
| 782 return false; |
| 783 |
| 784 FloatSize remainingDelta = delta; |
| 785 |
| 786 // If this is main frame, allow top controls to scroll first and update |
| 787 // |remainingDelta| accordingly |
| 788 bool giveToTopControls = false; |
| 789 if (isMainFrame()) { |
| 790 // Always give the delta to the top controls if the scroll is in |
| 791 // the direction to show the top controls. If it's in the |
| 792 // direction to hide the top controls, only give the delta to the |
| 793 // top controls when the frame can scroll. |
| 794 giveToTopControls = remainingDelta.height() > 0 |
| 795 || view()->scrollPosition().y() < view()->maximumScrollPosition().y(
); |
| 796 } |
| 797 |
| 798 if (giveToTopControls) |
| 799 remainingDelta = host()->topControls().scrollBy(remainingDelta); |
| 800 |
| 801 if (remainingDelta.isZero()) |
| 802 return true; |
| 803 |
| 804 if (scrollAreaOnBothAxes(remainingDelta, *view())) |
| 805 return true; |
| 806 |
| 807 // If this is the main frame and it didn't scroll, propagate up to the pinch
viewport. |
| 808 if (!settings()->pinchVirtualViewportEnabled() || !isMainFrame()) |
| 809 return false; |
| 810 |
| 811 if (scrollAreaOnBothAxes(remainingDelta, page()->frameHost().pinchViewport()
)) |
| 812 return true; |
| 813 |
| 814 return false; |
| 815 } |
| 816 |
768 #if ENABLE(OILPAN) | 817 #if ENABLE(OILPAN) |
769 void LocalFrame::registerPluginElement(HTMLPlugInElement* plugin) | 818 void LocalFrame::registerPluginElement(HTMLPlugInElement* plugin) |
770 { | 819 { |
771 m_pluginElements.add(plugin); | 820 m_pluginElements.add(plugin); |
772 } | 821 } |
773 | 822 |
774 void LocalFrame::unregisterPluginElement(HTMLPlugInElement* plugin) | 823 void LocalFrame::unregisterPluginElement(HTMLPlugInElement* plugin) |
775 { | 824 { |
776 ASSERT(m_pluginElements.contains(plugin)); | 825 ASSERT(m_pluginElements.contains(plugin)); |
777 m_pluginElements.remove(plugin); | 826 m_pluginElements.remove(plugin); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
824 // We detach the FrameView's custom scroll bars as early as | 873 // We detach the FrameView's custom scroll bars as early as |
825 // possible to prevent m_doc->detach() from messing with the view | 874 // possible to prevent m_doc->detach() from messing with the view |
826 // such that its scroll bars won't be torn down. | 875 // such that its scroll bars won't be torn down. |
827 // | 876 // |
828 // FIXME: We should revisit this. | 877 // FIXME: We should revisit this. |
829 if (m_view) | 878 if (m_view) |
830 m_view->prepareForDetach(); | 879 m_view->prepareForDetach(); |
831 } | 880 } |
832 | 881 |
833 } // namespace blink | 882 } // namespace blink |
OLD | NEW |