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

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

Issue 14614007: Remove frame flattening from rendering code. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: better. 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/ScrollView.h ('k') | Source/core/rendering/RenderFrameBase.h » ('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 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 75
76 void ScrollView::removeChild(Widget* child) 76 void ScrollView::removeChild(Widget* child)
77 { 77 {
78 ASSERT(child->parent() == this); 78 ASSERT(child->parent() == this);
79 child->setParent(0); 79 child->setParent(0);
80 m_children.remove(child); 80 m_children.remove(child);
81 } 81 }
82 82
83 void ScrollView::setHasHorizontalScrollbar(bool hasBar) 83 void ScrollView::setHasHorizontalScrollbar(bool hasBar)
84 { 84 {
85 ASSERT(!hasBar || !avoidScrollbarCreation());
86 if (hasBar && !m_horizontalScrollbar) { 85 if (hasBar && !m_horizontalScrollbar) {
87 m_horizontalScrollbar = createScrollbar(HorizontalScrollbar); 86 m_horizontalScrollbar = createScrollbar(HorizontalScrollbar);
88 addChild(m_horizontalScrollbar.get()); 87 addChild(m_horizontalScrollbar.get());
89 didAddHorizontalScrollbar(m_horizontalScrollbar.get()); 88 didAddHorizontalScrollbar(m_horizontalScrollbar.get());
90 m_horizontalScrollbar->styleChanged(); 89 m_horizontalScrollbar->styleChanged();
91 } else if (!hasBar && m_horizontalScrollbar) { 90 } else if (!hasBar && m_horizontalScrollbar) {
92 willRemoveHorizontalScrollbar(m_horizontalScrollbar.get()); 91 willRemoveHorizontalScrollbar(m_horizontalScrollbar.get());
93 removeChild(m_horizontalScrollbar.get()); 92 removeChild(m_horizontalScrollbar.get());
94 m_horizontalScrollbar = 0; 93 m_horizontalScrollbar = 0;
95 } 94 }
96 95
97 if (AXObjectCache* cache = axObjectCache()) 96 if (AXObjectCache* cache = axObjectCache())
98 cache->handleScrollbarUpdate(this); 97 cache->handleScrollbarUpdate(this);
99 } 98 }
100 99
101 void ScrollView::setHasVerticalScrollbar(bool hasBar) 100 void ScrollView::setHasVerticalScrollbar(bool hasBar)
102 { 101 {
103 ASSERT(!hasBar || !avoidScrollbarCreation());
104 if (hasBar && !m_verticalScrollbar) { 102 if (hasBar && !m_verticalScrollbar) {
105 m_verticalScrollbar = createScrollbar(VerticalScrollbar); 103 m_verticalScrollbar = createScrollbar(VerticalScrollbar);
106 addChild(m_verticalScrollbar.get()); 104 addChild(m_verticalScrollbar.get());
107 didAddVerticalScrollbar(m_verticalScrollbar.get()); 105 didAddVerticalScrollbar(m_verticalScrollbar.get());
108 m_verticalScrollbar->styleChanged(); 106 m_verticalScrollbar->styleChanged();
109 } else if (!hasBar && m_verticalScrollbar) { 107 } else if (!hasBar && m_verticalScrollbar) {
110 willRemoveVerticalScrollbar(m_verticalScrollbar.get()); 108 willRemoveVerticalScrollbar(m_verticalScrollbar.get());
111 removeChild(m_verticalScrollbar.get()); 109 removeChild(m_verticalScrollbar.get());
112 m_verticalScrollbar = 0; 110 m_verticalScrollbar = 0;
113 } 111 }
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 399
402 ScrollbarMode hScroll = m_horizontalScrollbarMode; 400 ScrollbarMode hScroll = m_horizontalScrollbarMode;
403 ScrollbarMode vScroll = m_verticalScrollbarMode; 401 ScrollbarMode vScroll = m_verticalScrollbarMode;
404 402
405 if (hScroll != ScrollbarAuto) 403 if (hScroll != ScrollbarAuto)
406 newHasHorizontalScrollbar = (hScroll == ScrollbarAlwaysOn); 404 newHasHorizontalScrollbar = (hScroll == ScrollbarAlwaysOn);
407 if (vScroll != ScrollbarAuto) 405 if (vScroll != ScrollbarAuto)
408 newHasVerticalScrollbar = (vScroll == ScrollbarAlwaysOn); 406 newHasVerticalScrollbar = (vScroll == ScrollbarAlwaysOn);
409 407
410 if (m_scrollbarsSuppressed || (hScroll != ScrollbarAuto && vScroll != Scroll barAuto)) { 408 if (m_scrollbarsSuppressed || (hScroll != ScrollbarAuto && vScroll != Scroll barAuto)) {
411 if (hasHorizontalScrollbar != newHasHorizontalScrollbar && (hasHorizonta lScrollbar || !avoidScrollbarCreation())) 409 if (hasHorizontalScrollbar != newHasHorizontalScrollbar)
412 setHasHorizontalScrollbar(newHasHorizontalScrollbar); 410 setHasHorizontalScrollbar(newHasHorizontalScrollbar);
413 if (hasVerticalScrollbar != newHasVerticalScrollbar && (hasVerticalScrol lbar || !avoidScrollbarCreation())) 411 if (hasVerticalScrollbar != newHasVerticalScrollbar)
414 setHasVerticalScrollbar(newHasVerticalScrollbar); 412 setHasVerticalScrollbar(newHasVerticalScrollbar);
415 } else { 413 } else {
416 bool scrollbarExistenceChanged = false; 414 bool scrollbarExistenceChanged = false;
417 415
418 IntSize docSize = contentsSize(); 416 IntSize docSize = contentsSize();
419 IntSize fullVisibleSize = visibleContentRect(IncludeScrollbars).size(); 417 IntSize fullVisibleSize = visibleContentRect(IncludeScrollbars).size();
420 418
421 bool scrollbarsAreOverlay = ScrollbarTheme::theme()->usesOverlayScrollba rs(); 419 bool scrollbarsAreOverlay = ScrollbarTheme::theme()->usesOverlayScrollba rs();
422 420
423 if (hScroll == ScrollbarAuto) { 421 if (hScroll == ScrollbarAuto) {
(...skipping 10 matching lines...) Expand all
434 if (!scrollbarsAreOverlay) { 432 if (!scrollbarsAreOverlay) {
435 // If we ever turn one scrollbar off, always turn the other one off too. Never ever 433 // If we ever turn one scrollbar off, always turn the other one off too. Never ever
436 // try to both gain/lose a scrollbar in the same pass. 434 // try to both gain/lose a scrollbar in the same pass.
437 if (!newHasHorizontalScrollbar && hasHorizontalScrollbar && vScroll != ScrollbarAlwaysOn) 435 if (!newHasHorizontalScrollbar && hasHorizontalScrollbar && vScroll != ScrollbarAlwaysOn)
438 newHasVerticalScrollbar = false; 436 newHasVerticalScrollbar = false;
439 if (!newHasVerticalScrollbar && hasVerticalScrollbar && hScroll != S crollbarAlwaysOn) 437 if (!newHasVerticalScrollbar && hasVerticalScrollbar && hScroll != S crollbarAlwaysOn)
440 newHasHorizontalScrollbar = false; 438 newHasHorizontalScrollbar = false;
441 } 439 }
442 440
443 bool scrollbarIsOverlay = ScrollbarTheme::theme()->usesOverlayScrollbars (); 441 bool scrollbarIsOverlay = ScrollbarTheme::theme()->usesOverlayScrollbars ();
444 if (hasHorizontalScrollbar != newHasHorizontalScrollbar && (hasHorizonta lScrollbar || !avoidScrollbarCreation())) { 442 if (hasHorizontalScrollbar != newHasHorizontalScrollbar) {
445 scrollbarExistenceChanged = true; 443 scrollbarExistenceChanged = true;
446 if (scrollOrigin().y() && !newHasHorizontalScrollbar && !scrollbarsA reOverlay) 444 if (scrollOrigin().y() && !newHasHorizontalScrollbar && !scrollbarsA reOverlay)
447 ScrollableArea::setScrollOrigin(IntPoint(scrollOrigin().x(), scr ollOrigin().y() - m_horizontalScrollbar->height())); 445 ScrollableArea::setScrollOrigin(IntPoint(scrollOrigin().x(), scr ollOrigin().y() - m_horizontalScrollbar->height()));
448 if (hasHorizontalScrollbar) 446 if (hasHorizontalScrollbar)
449 m_horizontalScrollbar->invalidate(); 447 m_horizontalScrollbar->invalidate();
450 setHasHorizontalScrollbar(newHasHorizontalScrollbar); 448 setHasHorizontalScrollbar(newHasHorizontalScrollbar);
451 } 449 }
452 450
453 if (hasVerticalScrollbar != newHasVerticalScrollbar && (hasVerticalScrol lbar || !avoidScrollbarCreation())) { 451 if (hasVerticalScrollbar != newHasVerticalScrollbar) {
454 scrollbarExistenceChanged = true; 452 scrollbarExistenceChanged = true;
455 if (scrollOrigin().x() && !newHasVerticalScrollbar && !scrollbarsAre Overlay) 453 if (scrollOrigin().x() && !newHasVerticalScrollbar && !scrollbarsAre Overlay)
456 ScrollableArea::setScrollOrigin(IntPoint(scrollOrigin().x() - m_ verticalScrollbar->width(), scrollOrigin().y())); 454 ScrollableArea::setScrollOrigin(IntPoint(scrollOrigin().x() - m_ verticalScrollbar->width(), scrollOrigin().y()));
457 if (hasVerticalScrollbar) 455 if (hasVerticalScrollbar)
458 m_verticalScrollbar->invalidate(); 456 m_verticalScrollbar->invalidate();
459 setHasVerticalScrollbar(newHasVerticalScrollbar); 457 setHasVerticalScrollbar(newHasVerticalScrollbar);
460 } 458 }
461 459
462 if (scrollbarExistenceChanged) { 460 if (scrollbarExistenceChanged) {
463 if (scrollbarsAreOverlay) { 461 if (scrollbarsAreOverlay) {
(...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after
1260 { 1258 {
1261 } 1259 }
1262 1260
1263 bool ScrollView::platformIsOffscreen() const 1261 bool ScrollView::platformIsOffscreen() const
1264 { 1262 {
1265 return false; 1263 return false;
1266 } 1264 }
1267 1265
1268 1266
1269 } 1267 }
OLDNEW
« no previous file with comments | « Source/core/platform/ScrollView.h ('k') | Source/core/rendering/RenderFrameBase.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698