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

Side by Side Diff: Source/core/platform/ScrollView.cpp

Issue 98453005: [Blink] Adding Writing direction to the context menu for Aura. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 11 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
« no previous file with comments | « Source/core/platform/ScrollView.h ('k') | Source/web/ContextMenuClientImpl.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 m_clipsRepaints = clipsRepaints; 177 m_clipsRepaints = clipsRepaints;
178 } 178 }
179 179
180 IntSize ScrollView::unscaledVisibleContentSize(IncludeScrollbarsInRect scrollbar Inclusion) const 180 IntSize ScrollView::unscaledVisibleContentSize(IncludeScrollbarsInRect scrollbar Inclusion) const
181 { 181 {
182 return scrollbarInclusion == ExcludeScrollbars ? excludeScrollbars(frameRect ().size()) : frameRect().size(); 182 return scrollbarInclusion == ExcludeScrollbars ? excludeScrollbars(frameRect ().size()) : frameRect().size();
183 } 183 }
184 184
185 IntSize ScrollView::excludeScrollbars(const IntSize& size) const 185 IntSize ScrollView::excludeScrollbars(const IntSize& size) const
186 { 186 {
187 int verticalScrollbarWidth = 0; 187 // int verticalScrollbarWidth = 0;
188 int horizontalScrollbarHeight = 0; 188 int horizontalScrollbarHeight = 0;
189 189
190 if (Scrollbar* verticalBar = verticalScrollbar()) 190 // if (Scrollbar* verticalBar = verticalScrollbar())
191 verticalScrollbarWidth = !verticalBar->isOverlayScrollbar() ? verticalBa r->width() : 0; 191 // verticalScrollbarWidth = !verticalBar->isOverlayScrollbar() ? verticalBa r->width() : 0;
192 if (Scrollbar* horizontalBar = horizontalScrollbar()) 192 if (Scrollbar* horizontalBar = horizontalScrollbar())
193 horizontalScrollbarHeight = !horizontalBar->isOverlayScrollbar() ? horiz ontalBar->height() : 0; 193 horizontalScrollbarHeight = !horizontalBar->isOverlayScrollbar() ? horiz ontalBar->height() : 0;
194 194
195 return IntSize(max(0, size.width() - verticalScrollbarWidth), 195 return IntSize(max(0, size.width()),
196 max(0, size.height() - horizontalScrollbarHeight)); 196 max(0, size.height() - horizontalScrollbarHeight));
197 197
198 } 198 }
199 199
200 IntRect ScrollView::visibleContentRect(IncludeScrollbarsInRect scollbarInclusion ) const 200 IntRect ScrollView::visibleContentRect(IncludeScrollbarsInRect scollbarInclusion ) const
201 { 201 {
202 FloatSize visibleContentSize = unscaledVisibleContentSize(scollbarInclusion) ; 202 FloatSize visibleContentSize = unscaledVisibleContentSize(scollbarInclusion) ;
203 visibleContentSize.scale(1 / visibleContentScaleFactor()); 203 visibleContentSize.scale(1 / visibleContentScaleFactor());
204 return IntRect(IntPoint(m_scrollOffset), expandedIntSize(visibleContentSize) ); 204 return IntRect(IntPoint(m_scrollOffset), expandedIntSize(visibleContentSize) );
205 } 205 }
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 if (m_verticalScrollbar) 491 if (m_verticalScrollbar)
492 m_verticalScrollbar->offsetDidChange(); 492 m_verticalScrollbar->offsetDidChange();
493 493
494 m_inUpdateScrollbars = false; 494 m_inUpdateScrollbars = false;
495 } 495 }
496 496
497 const int panIconSizeLength = 16; 497 const int panIconSizeLength = 16;
498 498
499 IntRect ScrollView::rectToCopyOnScroll() const 499 IntRect ScrollView::rectToCopyOnScroll() const
500 { 500 {
501 IntRect scrollViewRect = convertToRootView(IntRect((shouldPlaceVerticalScrol lbarOnLeft() && verticalScrollbar()) ? verticalScrollbar()->width() : 0, 0, visi bleWidth(), visibleHeight())); 501 // IntRect scrollViewRect = convertToRootView(IntRect((shouldPlaceVerticalSc rollbarOnLeft() && verticalScrollbar()) ? verticalScrollbar()->width() : 0, 0, v isibleWidth(), visibleHeight()));
502 IntRect scrollViewRect = convertToRootView(IntRect(0, 0, visibleWidth(), vis ibleHeight()));
502 if (hasOverlayScrollbars()) { 503 if (hasOverlayScrollbars()) {
503 int verticalScrollbarWidth = (verticalScrollbar() && !hasLayerForVertica lScrollbar()) ? verticalScrollbar()->width() : 0; 504 int verticalScrollbarWidth = (verticalScrollbar() && !hasLayerForVertica lScrollbar()) ? verticalScrollbar()->width() : 0;
504 int horizontalScrollbarHeight = (horizontalScrollbar() && !hasLayerForHo rizontalScrollbar()) ? horizontalScrollbar()->height() : 0; 505 int horizontalScrollbarHeight = (horizontalScrollbar() && !hasLayerForHo rizontalScrollbar()) ? horizontalScrollbar()->height() : 0;
505 506
506 scrollViewRect.setWidth(scrollViewRect.width() - verticalScrollbarWidth) ; 507 scrollViewRect.setWidth(scrollViewRect.width() - verticalScrollbarWidth) ;
507 scrollViewRect.setHeight(scrollViewRect.height() - horizontalScrollbarHe ight); 508 scrollViewRect.setHeight(scrollViewRect.height() - horizontalScrollbarHe ight);
508 } 509 }
509 return scrollViewRect; 510 return scrollViewRect;
510 } 511 }
511 512
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 } 557 }
557 558
558 void ScrollView::scrollContentsSlowPath(const IntRect& updateRect) 559 void ScrollView::scrollContentsSlowPath(const IntRect& updateRect)
559 { 560 {
560 hostWindow()->invalidateContentsForSlowScroll(updateRect); 561 hostWindow()->invalidateContentsForSlowScroll(updateRect);
561 } 562 }
562 563
563 IntPoint ScrollView::rootViewToContents(const IntPoint& rootViewPoint) const 564 IntPoint ScrollView::rootViewToContents(const IntPoint& rootViewPoint) const
564 { 565 {
565 IntPoint viewPoint = convertFromRootView(rootViewPoint); 566 IntPoint viewPoint = convertFromRootView(rootViewPoint);
567 viewPoint.move(-verticalScrollbarWidth(), 0);
566 return viewPoint + scrollOffset(); 568 return viewPoint + scrollOffset();
567 } 569 }
568 570
569 IntPoint ScrollView::contentsToRootView(const IntPoint& contentsPoint) const 571 IntPoint ScrollView::contentsToRootView(const IntPoint& contentsPoint) const
570 { 572 {
571 IntPoint viewPoint = contentsPoint - scrollOffset(); 573 IntPoint viewPoint = contentsPoint - scrollOffset();
574 viewPoint.move(verticalScrollbarWidth(), 0);
572 return convertToRootView(viewPoint); 575 return convertToRootView(viewPoint);
573 } 576 }
574 577
575 IntRect ScrollView::rootViewToContents(const IntRect& rootViewRect) const 578 IntRect ScrollView::rootViewToContents(const IntRect& rootViewRect) const
576 { 579 {
577 IntRect viewRect = convertFromRootView(rootViewRect); 580 IntRect viewRect = convertFromRootView(rootViewRect);
578 viewRect.move(scrollOffset()); 581 viewRect.move(scrollOffset());
582 viewRect.move(-verticalScrollbarWidth(), 0);
579 return viewRect; 583 return viewRect;
580 } 584 }
581 585
582 IntRect ScrollView::contentsToRootView(const IntRect& contentsRect) const 586 IntRect ScrollView::contentsToRootView(const IntRect& contentsRect) const
583 { 587 {
584 IntRect viewRect = contentsRect; 588 IntRect viewRect = contentsRect;
585 viewRect.move(-scrollOffset()); 589 viewRect.move(-scrollOffset());
590 viewRect.move(verticalScrollbarWidth(), 0);
586 return convertToRootView(viewRect); 591 return convertToRootView(viewRect);
587 } 592 }
588 593
589 IntPoint ScrollView::windowToContents(const IntPoint& windowPoint) const 594 IntPoint ScrollView::windowToContents(const IntPoint& windowPoint) const
590 { 595 {
591 IntPoint viewPoint = convertFromContainingWindow(windowPoint); 596 IntPoint viewPoint = convertFromContainingWindow(windowPoint);
597 viewPoint.move(-verticalScrollbarWidth(), 0);
592 return viewPoint + scrollOffset(); 598 return viewPoint + scrollOffset();
593 } 599 }
594 600
595 IntPoint ScrollView::contentsToWindow(const IntPoint& contentsPoint) const 601 IntPoint ScrollView::contentsToWindow(const IntPoint& contentsPoint) const
596 { 602 {
597 IntPoint viewPoint = contentsPoint - scrollOffset(); 603 IntPoint viewPoint = contentsPoint - scrollOffset();
604 viewPoint.move(verticalScrollbarWidth(), 0);
598 return convertToContainingWindow(viewPoint); 605 return convertToContainingWindow(viewPoint);
599 } 606 }
600 607
601 IntRect ScrollView::windowToContents(const IntRect& windowRect) const 608 IntRect ScrollView::windowToContents(const IntRect& windowRect) const
602 { 609 {
603 IntRect viewRect = convertFromContainingWindow(windowRect); 610 IntRect viewRect = convertFromContainingWindow(windowRect);
604 viewRect.move(scrollOffset()); 611 viewRect.move(scrollOffset());
612 viewRect.move(-verticalScrollbarWidth(), 0);
605 return viewRect; 613 return viewRect;
606 } 614 }
607 615
608 IntRect ScrollView::contentsToWindow(const IntRect& contentsRect) const 616 IntRect ScrollView::contentsToWindow(const IntRect& contentsRect) const
609 { 617 {
610 IntRect viewRect = contentsRect; 618 IntRect viewRect = contentsRect;
611 viewRect.move(-scrollOffset()); 619 viewRect.move(-scrollOffset());
620 viewRect.move(verticalScrollbarWidth(), 0);
612 return convertToContainingWindow(viewRect); 621 return convertToContainingWindow(viewRect);
613 } 622 }
614 623
615 IntRect ScrollView::contentsToScreen(const IntRect& rect) const 624 IntRect ScrollView::contentsToScreen(const IntRect& rect) const
616 { 625 {
617 HostWindow* window = hostWindow(); 626 HostWindow* window = hostWindow();
618 if (!window) 627 if (!window)
619 return IntRect(); 628 return IntRect();
620 return window->rootViewToScreen(contentsToRootView(rect)); 629 return window->rootViewToScreen(contentsToRootView(rect));
621 } 630 }
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 bool ScrollView::userInputScrollable(ScrollbarOrientation orientation) const 771 bool ScrollView::userInputScrollable(ScrollbarOrientation orientation) const
763 { 772 {
764 ScrollbarMode mode = (orientation == HorizontalScrollbar) ? 773 ScrollbarMode mode = (orientation == HorizontalScrollbar) ?
765 m_horizontalScrollbarMode : m_verticalScrollbarMode; 774 m_horizontalScrollbarMode : m_verticalScrollbarMode;
766 775
767 return mode == ScrollbarAuto || mode == ScrollbarAlwaysOn; 776 return mode == ScrollbarAuto || mode == ScrollbarAlwaysOn;
768 } 777 }
769 778
770 bool ScrollView::shouldPlaceVerticalScrollbarOnLeft() const 779 bool ScrollView::shouldPlaceVerticalScrollbarOnLeft() const
771 { 780 {
772 return false; 781 return true;
773 } 782 }
774 783
775 void ScrollView::repaintContentRectangle(const IntRect& rect) 784 void ScrollView::repaintContentRectangle(const IntRect& rect)
776 { 785 {
777 IntRect paintRect = rect; 786 IntRect paintRect = rect;
778 if (clipsRepaints() && !paintsEntireContents()) 787 if (clipsRepaints() && !paintsEntireContents())
779 paintRect.intersect(visibleContentRect()); 788 paintRect.intersect(visibleContentRect());
780 if (paintRect.isEmpty()) 789 if (paintRect.isEmpty())
781 return; 790 return;
782 791
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
864 } 873 }
865 874
866 void ScrollView::paint(GraphicsContext* context, const IntRect& rect) 875 void ScrollView::paint(GraphicsContext* context, const IntRect& rect)
867 { 876 {
868 if (context->paintingDisabled() && !context->updatingControlTints()) 877 if (context->paintingDisabled() && !context->updatingControlTints())
869 return; 878 return;
870 879
871 notifyPageThatContentAreaWillPaint(); 880 notifyPageThatContentAreaWillPaint();
872 881
873 IntRect documentDirtyRect = rect; 882 IntRect documentDirtyRect = rect;
883 documentDirtyRect.move(-verticalScrollbarWidth(), 0);
884 documentDirtyRect.setWidth(rect.width() + 2*verticalScrollbarWidth());
874 if (!paintsEntireContents()) { 885 if (!paintsEntireContents()) {
875 IntRect visibleAreaWithoutScrollbars(location(), visibleContentRect().si ze()); 886 IntRect visibleAreaWithoutScrollbars(location(), visibleContentRect().si ze());
876 documentDirtyRect.intersect(visibleAreaWithoutScrollbars); 887 documentDirtyRect.intersect(visibleAreaWithoutScrollbars);
877 } 888 }
878 889
879 if (!documentDirtyRect.isEmpty()) { 890 if (!documentDirtyRect.isEmpty()) {
880 GraphicsContextStateSaver stateSaver(*context); 891 GraphicsContextStateSaver stateSaver(*context);
881 892
882 context->translate(x(), y()); 893 context->translate(x() + verticalScrollbarWidth(), y());
883 documentDirtyRect.moveBy(-location()); 894 documentDirtyRect.moveBy(-location());
884 895
885 if (!paintsEntireContents()) { 896 if (!paintsEntireContents()) {
886 context->translate(-scrollX(), -scrollY()); 897 context->translate(-scrollX(), -scrollY());
887 documentDirtyRect.moveBy(scrollPosition()); 898 documentDirtyRect.moveBy(scrollPosition());
888 899
889 context->clip(visibleContentRect()); 900 context->clip(visibleContentRect());
890 } 901 }
891 902
892 paintContents(context, documentDirtyRect); 903 paintContents(context, documentDirtyRect);
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
1137 int ScrollView::pageStep(ScrollbarOrientation orientation) const 1148 int ScrollView::pageStep(ScrollbarOrientation orientation) const
1138 { 1149 {
1139 int length = (orientation == HorizontalScrollbar) ? visibleWidth() : visible Height(); 1150 int length = (orientation == HorizontalScrollbar) ? visibleWidth() : visible Height();
1140 int minPageStep = static_cast<float>(length) * minFractionToStepWhenPaging() ; 1151 int minPageStep = static_cast<float>(length) * minFractionToStepWhenPaging() ;
1141 int pageStep = std::max(minPageStep, length - maxOverlapBetweenPages()); 1152 int pageStep = std::max(minPageStep, length - maxOverlapBetweenPages());
1142 1153
1143 return std::max(pageStep, 1); 1154 return std::max(pageStep, 1);
1144 } 1155 }
1145 1156
1146 } // namespace WebCore 1157 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/platform/ScrollView.h ('k') | Source/web/ContextMenuClientImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698