Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(677)

Side by Side Diff: Source/core/layout/LayoutBox.cpp

Issue 967213004: Removed FrameView's windowToContents and contentsToWindow methods. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Addressed rbyers@ feedback (minus tests) Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com)
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com)
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. 7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 751 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 return true; 762 return true;
763 763
764 return node && node->hasEditableStyle(); 764 return node && node->hasEditableStyle();
765 } 765 }
766 766
767 bool LayoutBox::usesCompositedScrolling() const 767 bool LayoutBox::usesCompositedScrolling() const
768 { 768 {
769 return hasOverflowClip() && hasLayer() && layer()->scrollableArea()->usesCom positedScrolling(); 769 return hasOverflowClip() && hasLayer() && layer()->scrollableArea()->usesCom positedScrolling();
770 } 770 }
771 771
772 void LayoutBox::autoscroll(const IntPoint& position) 772 void LayoutBox::autoscroll(const IntPoint& positionInRootFrame)
773 { 773 {
774 LocalFrame* frame = this->frame(); 774 LocalFrame* frame = this->frame();
775 if (!frame) 775 if (!frame)
776 return; 776 return;
777 777
778 FrameView* frameView = frame->view(); 778 FrameView* frameView = frame->view();
779 if (!frameView) 779 if (!frameView)
780 return; 780 return;
781 781
782 IntPoint currentDocumentPosition = frameView->windowToContents(position); 782 IntPoint positionInContent = frameView->rootFrameToContents(positionInRootFr ame);
783 scrollRectToVisible(LayoutRect(currentDocumentPosition, LayoutSize(1, 1)), S crollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignToEdgeIfNeeded); 783 scrollRectToVisible(LayoutRect(positionInContent, LayoutSize(1, 1)), ScrollA lignment::alignToEdgeIfNeeded, ScrollAlignment::alignToEdgeIfNeeded);
784 } 784 }
785 785
786 // There are two kinds of renderer that can autoscroll. 786 // There are two kinds of renderer that can autoscroll.
787 bool LayoutBox::canAutoscroll() const 787 bool LayoutBox::canAutoscroll() const
788 { 788 {
789 if (node() && node()->isDocumentNode()) 789 if (node() && node()->isDocumentNode())
790 return view()->frameView()->isScrollable(); 790 return view()->frameView()->isScrollable();
791 791
792 // Check for a box that can be scrolled in its own right. 792 // Check for a box that can be scrolled in its own right.
793 return canBeScrolledAndHasScrollableArea(); 793 return canBeScrolledAndHasScrollableArea();
794 } 794 }
795 795
796 // If specified point is in border belt, returned offset denotes direction of 796 // If specified point is in border belt, returned offset denotes direction of
797 // scrolling. 797 // scrolling.
798 IntSize LayoutBox::calculateAutoscrollDirection(const IntPoint& windowPoint) con st 798 IntSize LayoutBox::calculateAutoscrollDirection(const IntPoint& pointInRootFrame ) const
799 { 799 {
800 if (!frame()) 800 if (!frame())
801 return IntSize(); 801 return IntSize();
802 802
803 FrameView* frameView = frame()->view(); 803 FrameView* frameView = frame()->view();
804 if (!frameView) 804 if (!frameView)
805 return IntSize(); 805 return IntSize();
806 806
807 IntRect box(absoluteBoundingBoxRect()); 807 IntRect box(absoluteBoundingBoxRect());
808 box.move(view()->frameView()->scrollOffset()); 808 box.move(view()->frameView()->scrollOffset());
809 IntRect windowBox = view()->frameView()->contentsToWindow(box); 809 IntRect windowBox = view()->frameView()->contentsToRootFrame(box);
810 810
811 IntPoint windowAutoscrollPoint = windowPoint; 811 IntPoint windowAutoscrollPoint = pointInRootFrame;
812 812
813 if (windowAutoscrollPoint.x() < windowBox.x() + autoscrollBeltSize) 813 if (windowAutoscrollPoint.x() < windowBox.x() + autoscrollBeltSize)
814 windowAutoscrollPoint.move(-autoscrollBeltSize, 0); 814 windowAutoscrollPoint.move(-autoscrollBeltSize, 0);
815 else if (windowAutoscrollPoint.x() > windowBox.maxX() - autoscrollBeltSize) 815 else if (windowAutoscrollPoint.x() > windowBox.maxX() - autoscrollBeltSize)
816 windowAutoscrollPoint.move(autoscrollBeltSize, 0); 816 windowAutoscrollPoint.move(autoscrollBeltSize, 0);
817 817
818 if (windowAutoscrollPoint.y() < windowBox.y() + autoscrollBeltSize) 818 if (windowAutoscrollPoint.y() < windowBox.y() + autoscrollBeltSize)
819 windowAutoscrollPoint.move(0, -autoscrollBeltSize); 819 windowAutoscrollPoint.move(0, -autoscrollBeltSize);
820 else if (windowAutoscrollPoint.y() > windowBox.maxY() - autoscrollBeltSize) 820 else if (windowAutoscrollPoint.y() > windowBox.maxY() - autoscrollBeltSize)
821 windowAutoscrollPoint.move(0, autoscrollBeltSize); 821 windowAutoscrollPoint.move(0, autoscrollBeltSize);
822 822
823 return windowAutoscrollPoint - windowPoint; 823 return windowAutoscrollPoint - pointInRootFrame;
824 } 824 }
825 825
826 LayoutBox* LayoutBox::findAutoscrollable(LayoutObject* renderer) 826 LayoutBox* LayoutBox::findAutoscrollable(LayoutObject* renderer)
827 { 827 {
828 while (renderer && !(renderer->isBox() && toLayoutBox(renderer)->canAutoscro ll())) { 828 while (renderer && !(renderer->isBox() && toLayoutBox(renderer)->canAutoscro ll())) {
829 if (!renderer->parent() && renderer->node() == renderer->document() && r enderer->document().ownerElement()) 829 if (!renderer->parent() && renderer->node() == renderer->document() && r enderer->document().ownerElement())
830 renderer = renderer->document().ownerElement()->renderer(); 830 renderer = renderer->document().ownerElement()->renderer();
831 else 831 else
832 renderer = renderer->parent(); 832 renderer = renderer->parent();
833 } 833 }
(...skipping 3803 matching lines...) Expand 10 before | Expand all | Expand 10 after
4637 computedValues.m_margins.m_end = marginEnd(); 4637 computedValues.m_margins.m_end = marginEnd();
4638 4638
4639 setLogicalTop(oldLogicalTop); 4639 setLogicalTop(oldLogicalTop);
4640 setLogicalWidth(oldLogicalWidth); 4640 setLogicalWidth(oldLogicalWidth);
4641 setLogicalLeft(oldLogicalLeft); 4641 setLogicalLeft(oldLogicalLeft);
4642 setMarginLeft(oldMarginLeft); 4642 setMarginLeft(oldMarginLeft);
4643 setMarginRight(oldMarginRight); 4643 setMarginRight(oldMarginRight);
4644 } 4644 }
4645 4645
4646 } // namespace blink 4646 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698