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

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

Issue 13851023: Remove ChromeClient cruft (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Patch for landing Created 7 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/platform/HostWindow.h ('k') | Source/core/rendering/RenderMenuList.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 569 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 if (!hostWindow()) 580 if (!hostWindow())
581 return; 581 return;
582 582
583 // Since scrolling is double buffered, we will be blitting the scroll view's intersection 583 // Since scrolling is double buffered, we will be blitting the scroll view's intersection
584 // with the clip rect every time to keep it smooth. 584 // with the clip rect every time to keep it smooth.
585 IntRect clipRect = windowClipRect(); 585 IntRect clipRect = windowClipRect();
586 IntRect scrollViewRect = rectToCopyOnScroll(); 586 IntRect scrollViewRect = rectToCopyOnScroll();
587 IntRect updateRect = clipRect; 587 IntRect updateRect = clipRect;
588 updateRect.intersect(scrollViewRect); 588 updateRect.intersect(scrollViewRect);
589 589
590 // Invalidate the root view (not the backing store).
591 hostWindow()->invalidateRootView(updateRect);
592
593 if (m_drawPanScrollIcon) { 590 if (m_drawPanScrollIcon) {
594 // FIXME: the pan icon is broken when accelerated compositing is on, sin ce it will draw under the compositing layers. 591 // FIXME: the pan icon is broken when accelerated compositing is on, sin ce it will draw under the compositing layers.
595 // https://bugs.webkit.org/show_bug.cgi?id=47837 592 // https://bugs.webkit.org/show_bug.cgi?id=47837
596 int panIconDirtySquareSizeLength = 2 * (panIconSizeLength + max(abs(scro llDelta.width()), abs(scrollDelta.height()))); // We only want to repaint what's necessary 593 int panIconDirtySquareSizeLength = 2 * (panIconSizeLength + max(abs(scro llDelta.width()), abs(scrollDelta.height()))); // We only want to repaint what's necessary
597 IntPoint panIconDirtySquareLocation = IntPoint(m_panScrollIconPoint.x() - (panIconDirtySquareSizeLength / 2), m_panScrollIconPoint.y() - (panIconDirtySq uareSizeLength / 2)); 594 IntPoint panIconDirtySquareLocation = IntPoint(m_panScrollIconPoint.x() - (panIconDirtySquareSizeLength / 2), m_panScrollIconPoint.y() - (panIconDirtySq uareSizeLength / 2));
598 IntRect panScrollIconDirtyRect = IntRect(panIconDirtySquareLocation, Int Size(panIconDirtySquareSizeLength, panIconDirtySquareSizeLength)); 595 IntRect panScrollIconDirtyRect = IntRect(panIconDirtySquareLocation, Int Size(panIconDirtySquareSizeLength, panIconDirtySquareSizeLength));
599 panScrollIconDirtyRect.intersect(clipRect); 596 panScrollIconDirtyRect.intersect(clipRect);
600 hostWindow()->invalidateContentsAndRootView(panScrollIconDirtyRect); 597 hostWindow()->invalidateContentsAndRootView(panScrollIconDirtyRect);
601 } 598 }
602 599
603 if (canBlitOnScroll()) { // The main frame can just blit the WebView window 600 if (canBlitOnScroll()) { // The main frame can just blit the WebView window
604 // FIXME: Find a way to scroll subframes with this faster path 601 // FIXME: Find a way to scroll subframes with this faster path
605 if (!scrollContentsFastPath(-scrollDelta, scrollViewRect, clipRect)) 602 if (!scrollContentsFastPath(-scrollDelta, scrollViewRect, clipRect))
606 scrollContentsSlowPath(updateRect); 603 scrollContentsSlowPath(updateRect);
607 } else { 604 } else {
608 // We need to go ahead and repaint the entire backing store. Do it now b efore moving the 605 // We need to go ahead and repaint the entire backing store. Do it now b efore moving the
609 // windowed plugins. 606 // windowed plugins.
610 scrollContentsSlowPath(updateRect); 607 scrollContentsSlowPath(updateRect);
611 } 608 }
612 609
613 // Invalidate the overhang areas if they are visible. 610 // Invalidate the overhang areas if they are visible.
614 updateOverhangAreas(); 611 updateOverhangAreas();
615 612
616 // This call will move children with native widgets (plugins) and invalidate them as well. 613 // This call will move children with native widgets (plugins) and invalidate them as well.
617 frameRectsChanged(); 614 frameRectsChanged();
618
619 // Now blit the backingstore into the window which should be very fast.
620 hostWindow()->invalidateRootView(IntRect());
621 } 615 }
622 616
623 bool ScrollView::scrollContentsFastPath(const IntSize& scrollDelta, const IntRec t& rectToScroll, const IntRect& clipRect) 617 bool ScrollView::scrollContentsFastPath(const IntSize& scrollDelta, const IntRec t& rectToScroll, const IntRect& clipRect)
624 { 618 {
625 hostWindow()->scroll(scrollDelta, rectToScroll, clipRect); 619 hostWindow()->scroll(scrollDelta, rectToScroll, clipRect);
626 return true; 620 return true;
627 } 621 }
628 622
629 void ScrollView::scrollContentsSlowPath(const IntRect& updateRect) 623 void ScrollView::scrollContentsSlowPath(const IntRect& updateRect)
630 { 624 {
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after
1269 { 1263 {
1270 } 1264 }
1271 1265
1272 bool ScrollView::platformIsOffscreen() const 1266 bool ScrollView::platformIsOffscreen() const
1273 { 1267 {
1274 return false; 1268 return false;
1275 } 1269 }
1276 1270
1277 1271
1278 } 1272 }
OLDNEW
« no previous file with comments | « Source/core/platform/HostWindow.h ('k') | Source/core/rendering/RenderMenuList.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698