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

Side by Side Diff: third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp

Issue 1511003003: Use refs for non-null GraphicsContext, Scrollbar, etc. in scrollbar related code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ScrollbarRemove
Patch Set: yet another mac fix Created 5 years 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) 2010, Google Inc. All rights reserved. 2 * Copyright (c) 2010, Google Inc. All rights reserved.
3 * Copyright (C) 2008, 2011 Apple Inc. All Rights Reserved. 3 * Copyright (C) 2008, 2011 Apple Inc. All Rights Reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 return kPixelsPerLineStep; 66 return kPixelsPerLineStep;
67 } 67 }
68 68
69 float ScrollableArea::minFractionToStepWhenPaging() 69 float ScrollableArea::minFractionToStepWhenPaging()
70 { 70 {
71 return kMinFractionToStepWhenPaging; 71 return kMinFractionToStepWhenPaging;
72 } 72 }
73 73
74 int ScrollableArea::maxOverlapBetweenPages() 74 int ScrollableArea::maxOverlapBetweenPages()
75 { 75 {
76 static int maxOverlapBetweenPages = ScrollbarTheme::theme()->maxOverlapBetwe enPages(); 76 static int maxOverlapBetweenPages = ScrollbarTheme::theme().maxOverlapBetwee nPages();
77 return maxOverlapBetweenPages; 77 return maxOverlapBetweenPages;
78 } 78 }
79 79
80 ScrollableArea::ScrollableArea() 80 ScrollableArea::ScrollableArea()
81 : m_inLiveResize(false) 81 : m_inLiveResize(false)
82 , m_scrollbarOverlayStyle(ScrollbarOverlayStyleDefault) 82 , m_scrollbarOverlayStyle(ScrollbarOverlayStyleDefault)
83 , m_scrollOriginChanged(false) 83 , m_scrollOriginChanged(false)
84 , m_horizontalScrollbarNeedsPaintInvalidation(false) 84 , m_horizontalScrollbarNeedsPaintInvalidation(false)
85 , m_verticalScrollbarNeedsPaintInvalidation(false) 85 , m_verticalScrollbarNeedsPaintInvalidation(false)
86 , m_scrollCornerNeedsPaintInvalidation(false) 86 , m_scrollCornerNeedsPaintInvalidation(false)
87 { 87 {
88 } 88 }
89 89
90 ScrollableArea::~ScrollableArea() 90 ScrollableArea::~ScrollableArea()
91 { 91 {
92 } 92 }
93 93
94 void ScrollableArea::clearScrollAnimators() 94 void ScrollableArea::clearScrollAnimators()
95 { 95 {
96 #if OS(MACOSX) && ENABLE(OILPAN) 96 #if OS(MACOSX) && ENABLE(OILPAN)
97 if (m_scrollAnimator) 97 if (m_scrollAnimator)
98 m_scrollAnimator->dispose(); 98 m_scrollAnimator->dispose();
99 #endif 99 #endif
100 m_scrollAnimator.clear(); 100 m_scrollAnimator.clear();
101 m_programmaticScrollAnimator.clear(); 101 m_programmaticScrollAnimator.clear();
102 } 102 }
103 103
104 ScrollAnimatorBase* ScrollableArea::scrollAnimator() const 104 ScrollAnimatorBase& ScrollableArea::scrollAnimator() const
105 { 105 {
106 if (!m_scrollAnimator) 106 if (!m_scrollAnimator)
107 m_scrollAnimator = ScrollAnimatorBase::create(const_cast<ScrollableArea* >(this)); 107 m_scrollAnimator = ScrollAnimatorBase::create(const_cast<ScrollableArea* >(this));
108 108
109 return m_scrollAnimator.get(); 109 return *m_scrollAnimator;
110 } 110 }
111 111
112 ProgrammaticScrollAnimator* ScrollableArea::programmaticScrollAnimator() const 112 ProgrammaticScrollAnimator& ScrollableArea::programmaticScrollAnimator() const
113 { 113 {
114 if (!m_programmaticScrollAnimator) 114 if (!m_programmaticScrollAnimator)
115 m_programmaticScrollAnimator = ProgrammaticScrollAnimator::create(const_ cast<ScrollableArea*>(this)); 115 m_programmaticScrollAnimator = ProgrammaticScrollAnimator::create(const_ cast<ScrollableArea*>(this));
116 116
117 return m_programmaticScrollAnimator.get(); 117 return *m_programmaticScrollAnimator;
118 } 118 }
119 119
120 void ScrollableArea::setScrollOrigin(const IntPoint& origin) 120 void ScrollableArea::setScrollOrigin(const IntPoint& origin)
121 { 121 {
122 if (m_scrollOrigin != origin) { 122 if (m_scrollOrigin != origin) {
123 m_scrollOrigin = origin; 123 m_scrollOrigin = origin;
124 m_scrollOriginChanged = true; 124 m_scrollOriginChanged = true;
125 } 125 }
126 } 126 }
127 127
(...skipping 28 matching lines...) Expand all
156 break; 156 break;
157 case ScrollByPixel: 157 case ScrollByPixel:
158 case ScrollByPrecisePixel: 158 case ScrollByPrecisePixel:
159 step = pixelStep(orientation); 159 step = pixelStep(orientation);
160 break; 160 break;
161 } 161 }
162 162
163 if (direction == ScrollUp || direction == ScrollLeft) 163 if (direction == ScrollUp || direction == ScrollLeft)
164 delta = -delta; 164 delta = -delta;
165 165
166 return scrollAnimator()->userScroll(orientation, granularity, step, delta); 166 return scrollAnimator().userScroll(orientation, granularity, step, delta);
167 } 167 }
168 168
169 void ScrollableArea::setScrollPosition(const DoublePoint& position, ScrollType s crollType, ScrollBehavior behavior) 169 void ScrollableArea::setScrollPosition(const DoublePoint& position, ScrollType s crollType, ScrollBehavior behavior)
170 { 170 {
171 if (behavior == ScrollBehaviorAuto) 171 if (behavior == ScrollBehaviorAuto)
172 behavior = scrollBehaviorStyle(); 172 behavior = scrollBehaviorStyle();
173 173
174 if (scrollType == CompositorScroll) 174 if (scrollType == CompositorScroll)
175 scrollPositionChanged(clampScrollPosition(position), CompositorScroll); 175 scrollPositionChanged(clampScrollPosition(position), CompositorScroll);
176 else if (scrollType == ProgrammaticScroll) 176 else if (scrollType == ProgrammaticScroll)
177 programmaticScrollHelper(position, behavior); 177 programmaticScrollHelper(position, behavior);
178 else if (scrollType == UserScroll) 178 else if (scrollType == UserScroll)
179 userScrollHelper(position, behavior); 179 userScrollHelper(position, behavior);
180 else 180 else
181 ASSERT_NOT_REACHED(); 181 ASSERT_NOT_REACHED();
182 } 182 }
183 183
184 void ScrollableArea::scrollBy(const DoubleSize& delta, ScrollType type, ScrollBe havior behavior) 184 void ScrollableArea::scrollBy(const DoubleSize& delta, ScrollType type, ScrollBe havior behavior)
185 { 185 {
186 setScrollPosition(scrollPositionDouble() + delta, type, behavior); 186 setScrollPosition(scrollPositionDouble() + delta, type, behavior);
187 } 187 }
188 188
189 void ScrollableArea::setScrollPositionSingleAxis(ScrollbarOrientation orientatio n, double position, ScrollType scrollType, ScrollBehavior behavior) 189 void ScrollableArea::setScrollPositionSingleAxis(ScrollbarOrientation orientatio n, double position, ScrollType scrollType, ScrollBehavior behavior)
190 { 190 {
191 DoublePoint newPosition; 191 DoublePoint newPosition;
192 if (orientation == HorizontalScrollbar) 192 if (orientation == HorizontalScrollbar)
193 newPosition = DoublePoint(position, scrollAnimator()->currentPosition(). y()); 193 newPosition = DoublePoint(position, scrollAnimator().currentPosition().y ());
194 else 194 else
195 newPosition = DoublePoint(scrollAnimator()->currentPosition().x(), posit ion); 195 newPosition = DoublePoint(scrollAnimator().currentPosition().x(), positi on);
196 196
197 // TODO(bokan): Note, this doesn't use the derived class versions since this method is currently used 197 // TODO(bokan): Note, this doesn't use the derived class versions since this method is currently used
198 // exclusively by code that adjusts the position by the scroll origin and th e derived class versions 198 // exclusively by code that adjusts the position by the scroll origin and th e derived class versions
199 // differ on whether they take that into account or not. 199 // differ on whether they take that into account or not.
200 ScrollableArea::setScrollPosition(newPosition, scrollType, behavior); 200 ScrollableArea::setScrollPosition(newPosition, scrollType, behavior);
201 } 201 }
202 202
203 void ScrollableArea::programmaticScrollHelper(const DoublePoint& position, Scrol lBehavior scrollBehavior) 203 void ScrollableArea::programmaticScrollHelper(const DoublePoint& position, Scrol lBehavior scrollBehavior)
204 { 204 {
205 cancelScrollAnimation(); 205 cancelScrollAnimation();
206 206
207 if (scrollBehavior == ScrollBehaviorSmooth) 207 if (scrollBehavior == ScrollBehaviorSmooth)
208 programmaticScrollAnimator()->animateToOffset(toFloatPoint(position)); 208 programmaticScrollAnimator().animateToOffset(toFloatPoint(position));
209 else 209 else
210 programmaticScrollAnimator()->scrollToOffsetWithoutAnimation(toFloatPoin t(position)); 210 programmaticScrollAnimator().scrollToOffsetWithoutAnimation(toFloatPoint (position));
211 } 211 }
212 212
213 void ScrollableArea::userScrollHelper(const DoublePoint& position, ScrollBehavio r scrollBehavior) 213 void ScrollableArea::userScrollHelper(const DoublePoint& position, ScrollBehavio r scrollBehavior)
214 { 214 {
215 cancelProgrammaticScrollAnimation(); 215 cancelProgrammaticScrollAnimation();
216 216
217 double x = userInputScrollable(HorizontalScrollbar) ? position.x() : scrollA nimator()->currentPosition().x(); 217 double x = userInputScrollable(HorizontalScrollbar) ? position.x() : scrollA nimator().currentPosition().x();
218 double y = userInputScrollable(VerticalScrollbar) ? position.y() : scrollAni mator()->currentPosition().y(); 218 double y = userInputScrollable(VerticalScrollbar) ? position.y() : scrollAni mator().currentPosition().y();
219 219
220 // Smooth user scrolls (keyboard, wheel clicks) are handled via the userScro ll method. 220 // Smooth user scrolls (keyboard, wheel clicks) are handled via the userScro ll method.
221 // TODO(bokan): The userScroll method should probably be modified to call th is method 221 // TODO(bokan): The userScroll method should probably be modified to call th is method
222 // and ScrollAnimatorBase to have a simpler animateToOffset met hod like the 222 // and ScrollAnimatorBase to have a simpler animateToOffset met hod like the
223 // ProgrammaticScrollAnimator. 223 // ProgrammaticScrollAnimator.
224 ASSERT(scrollBehavior == ScrollBehaviorInstant); 224 ASSERT(scrollBehavior == ScrollBehaviorInstant);
225 scrollAnimator()->scrollToOffsetWithoutAnimation(FloatPoint(x, y)); 225 scrollAnimator().scrollToOffsetWithoutAnimation(FloatPoint(x, y));
226 } 226 }
227 227
228 LayoutRect ScrollableArea::scrollIntoView(const LayoutRect& rectInContent, const ScrollAlignment& alignX, const ScrollAlignment& alignY, ScrollType) 228 LayoutRect ScrollableArea::scrollIntoView(const LayoutRect& rectInContent, const ScrollAlignment& alignX, const ScrollAlignment& alignY, ScrollType)
229 { 229 {
230 // TODO(bokan): This should really be implemented here but ScrollAlignment i s in Core which is a dependency violation. 230 // TODO(bokan): This should really be implemented here but ScrollAlignment i s in Core which is a dependency violation.
231 ASSERT_NOT_REACHED(); 231 ASSERT_NOT_REACHED();
232 return LayoutRect(); 232 return LayoutRect();
233 } 233 }
234 234
235 void ScrollableArea::scrollPositionChanged(const DoublePoint& position, ScrollTy pe scrollType) 235 void ScrollableArea::scrollPositionChanged(const DoublePoint& position, ScrollTy pe scrollType)
236 { 236 {
237 TRACE_EVENT0("blink", "ScrollableArea::scrollPositionChanged"); 237 TRACE_EVENT0("blink", "ScrollableArea::scrollPositionChanged");
238 238
239 DoublePoint oldPosition = scrollPositionDouble(); 239 DoublePoint oldPosition = scrollPositionDouble();
240 DoublePoint truncatedPosition = shouldUseIntegerScrollOffset() ? flooredIntP oint(position) : position; 240 DoublePoint truncatedPosition = shouldUseIntegerScrollOffset() ? flooredIntP oint(position) : position;
241 241
242 // Tell the derived class to scroll its contents. 242 // Tell the derived class to scroll its contents.
243 setScrollOffset(truncatedPosition, scrollType); 243 setScrollOffset(truncatedPosition, scrollType);
244 244
245 Scrollbar* verticalScrollbar = this->verticalScrollbar(); 245 Scrollbar* verticalScrollbar = this->verticalScrollbar();
246 246
247 // Tell the scrollbars to update their thumb postions. 247 // Tell the scrollbars to update their thumb postions.
248 if (Scrollbar* horizontalScrollbar = this->horizontalScrollbar()) { 248 if (Scrollbar* horizontalScrollbar = this->horizontalScrollbar()) {
249 horizontalScrollbar->offsetDidChange(); 249 horizontalScrollbar->offsetDidChange();
250 if (horizontalScrollbar->isOverlayScrollbar() && !hasLayerForHorizontalS crollbar()) 250 if (horizontalScrollbar->isOverlayScrollbar() && !hasLayerForHorizontalS crollbar())
251 setScrollbarNeedsPaintInvalidation(horizontalScrollbar); 251 setScrollbarNeedsPaintInvalidation(HorizontalScrollbar);
252 } 252 }
253 if (verticalScrollbar) { 253 if (verticalScrollbar) {
254 verticalScrollbar->offsetDidChange(); 254 verticalScrollbar->offsetDidChange();
255 if (verticalScrollbar->isOverlayScrollbar() && !hasLayerForVerticalScrol lbar()) 255 if (verticalScrollbar->isOverlayScrollbar() && !hasLayerForVerticalScrol lbar())
256 setScrollbarNeedsPaintInvalidation(verticalScrollbar); 256 setScrollbarNeedsPaintInvalidation(VerticalScrollbar);
257 } 257 }
258 258
259 if (scrollPositionDouble() != oldPosition) { 259 if (scrollPositionDouble() != oldPosition) {
260 // FIXME: Pass in DoubleSize. crbug.com/414283. 260 // FIXME: Pass in DoubleSize. crbug.com/414283.
261 scrollAnimator()->notifyContentAreaScrolled(toFloatSize(scrollPositionDo uble() - oldPosition)); 261 scrollAnimator().notifyContentAreaScrolled(toFloatSize(scrollPositionDou ble() - oldPosition));
262 } 262 }
263 263
264 scrollAnimator()->setCurrentPosition(toFloatPoint(position)); 264 scrollAnimator().setCurrentPosition(toFloatPoint(position));
265 } 265 }
266 266
267 bool ScrollableArea::scrollBehaviorFromString(const String& behaviorString, Scro llBehavior& behavior) 267 bool ScrollableArea::scrollBehaviorFromString(const String& behaviorString, Scro llBehavior& behavior)
268 { 268 {
269 if (behaviorString == "auto") 269 if (behaviorString == "auto")
270 behavior = ScrollBehaviorAuto; 270 behavior = ScrollBehaviorAuto;
271 else if (behaviorString == "instant") 271 else if (behaviorString == "instant")
272 behavior = ScrollBehaviorInstant; 272 behavior = ScrollBehaviorInstant;
273 else if (behaviorString == "smooth") 273 else if (behaviorString == "smooth")
274 behavior = ScrollBehaviorSmooth; 274 behavior = ScrollBehaviorSmooth;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator()) 319 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator())
320 scrollAnimator->mouseEnteredContentArea(); 320 scrollAnimator->mouseEnteredContentArea();
321 } 321 }
322 322
323 void ScrollableArea::mouseMovedInContentArea() const 323 void ScrollableArea::mouseMovedInContentArea() const
324 { 324 {
325 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator()) 325 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator())
326 scrollAnimator->mouseMovedInContentArea(); 326 scrollAnimator->mouseMovedInContentArea();
327 } 327 }
328 328
329 void ScrollableArea::mouseEnteredScrollbar(Scrollbar* scrollbar) const 329 void ScrollableArea::mouseEnteredScrollbar(Scrollbar& scrollbar) const
330 { 330 {
331 scrollAnimator()->mouseEnteredScrollbar(scrollbar); 331 scrollAnimator().mouseEnteredScrollbar(scrollbar);
332 } 332 }
333 333
334 void ScrollableArea::mouseExitedScrollbar(Scrollbar* scrollbar) const 334 void ScrollableArea::mouseExitedScrollbar(Scrollbar& scrollbar) const
335 { 335 {
336 scrollAnimator()->mouseExitedScrollbar(scrollbar); 336 scrollAnimator().mouseExitedScrollbar(scrollbar);
337 } 337 }
338 338
339 void ScrollableArea::contentAreaDidShow() const 339 void ScrollableArea::contentAreaDidShow() const
340 { 340 {
341 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator()) 341 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator())
342 scrollAnimator->contentAreaDidShow(); 342 scrollAnimator->contentAreaDidShow();
343 } 343 }
344 344
345 void ScrollableArea::contentAreaDidHide() const 345 void ScrollableArea::contentAreaDidHide() const
346 { 346 {
347 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator()) 347 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator())
348 scrollAnimator->contentAreaDidHide(); 348 scrollAnimator->contentAreaDidHide();
349 } 349 }
350 350
351 void ScrollableArea::finishCurrentScrollAnimations() const 351 void ScrollableArea::finishCurrentScrollAnimations() const
352 { 352 {
353 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator()) 353 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator())
354 scrollAnimator->finishCurrentScrollAnimations(); 354 scrollAnimator->finishCurrentScrollAnimations();
355 } 355 }
356 356
357 void ScrollableArea::didAddScrollbar(Scrollbar* scrollbar, ScrollbarOrientation orientation) 357 void ScrollableArea::didAddScrollbar(Scrollbar& scrollbar, ScrollbarOrientation orientation)
358 { 358 {
359 if (orientation == VerticalScrollbar) 359 if (orientation == VerticalScrollbar)
360 scrollAnimator()->didAddVerticalScrollbar(scrollbar); 360 scrollAnimator().didAddVerticalScrollbar(scrollbar);
361 else 361 else
362 scrollAnimator()->didAddHorizontalScrollbar(scrollbar); 362 scrollAnimator().didAddHorizontalScrollbar(scrollbar);
363 363
364 // <rdar://problem/9797253> AppKit resets the scrollbar's style when you att ach a scrollbar 364 // <rdar://problem/9797253> AppKit resets the scrollbar's style when you att ach a scrollbar
365 setScrollbarOverlayStyle(scrollbarOverlayStyle()); 365 setScrollbarOverlayStyle(scrollbarOverlayStyle());
366 } 366 }
367 367
368 void ScrollableArea::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientat ion orientation) 368 void ScrollableArea::willRemoveScrollbar(Scrollbar& scrollbar, ScrollbarOrientat ion orientation)
369 { 369 {
370 if (orientation == VerticalScrollbar) 370 if (orientation == VerticalScrollbar)
371 scrollAnimator()->willRemoveVerticalScrollbar(scrollbar); 371 scrollAnimator().willRemoveVerticalScrollbar(scrollbar);
372 else 372 else
373 scrollAnimator()->willRemoveHorizontalScrollbar(scrollbar); 373 scrollAnimator().willRemoveHorizontalScrollbar(scrollbar);
374 } 374 }
375 375
376 void ScrollableArea::contentsResized() 376 void ScrollableArea::contentsResized()
377 { 377 {
378 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator()) 378 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator())
379 scrollAnimator->contentsResized(); 379 scrollAnimator->contentsResized();
380 } 380 }
381 381
382 bool ScrollableArea::hasOverlayScrollbars() const 382 bool ScrollableArea::hasOverlayScrollbars() const
383 { 383 {
384 Scrollbar* vScrollbar = verticalScrollbar(); 384 Scrollbar* vScrollbar = verticalScrollbar();
385 if (vScrollbar && vScrollbar->isOverlayScrollbar()) 385 if (vScrollbar && vScrollbar->isOverlayScrollbar())
386 return true; 386 return true;
387 Scrollbar* hScrollbar = horizontalScrollbar(); 387 Scrollbar* hScrollbar = horizontalScrollbar();
388 return hScrollbar && hScrollbar->isOverlayScrollbar(); 388 return hScrollbar && hScrollbar->isOverlayScrollbar();
389 } 389 }
390 390
391 void ScrollableArea::setScrollbarOverlayStyle(ScrollbarOverlayStyle overlayStyle ) 391 void ScrollableArea::setScrollbarOverlayStyle(ScrollbarOverlayStyle overlayStyle )
392 { 392 {
393 m_scrollbarOverlayStyle = overlayStyle; 393 m_scrollbarOverlayStyle = overlayStyle;
394 394
395 if (Scrollbar* scrollbar = horizontalScrollbar()) { 395 if (Scrollbar* scrollbar = horizontalScrollbar()) {
396 ScrollbarTheme::theme()->updateScrollbarOverlayStyle(scrollbar); 396 ScrollbarTheme::theme().updateScrollbarOverlayStyle(*scrollbar);
397 setScrollbarNeedsPaintInvalidation(scrollbar); 397 setScrollbarNeedsPaintInvalidation(HorizontalScrollbar);
398 } 398 }
399 399
400 if (Scrollbar* scrollbar = verticalScrollbar()) { 400 if (Scrollbar* scrollbar = verticalScrollbar()) {
401 ScrollbarTheme::theme()->updateScrollbarOverlayStyle(scrollbar); 401 ScrollbarTheme::theme().updateScrollbarOverlayStyle(*scrollbar);
402 setScrollbarNeedsPaintInvalidation(scrollbar); 402 setScrollbarNeedsPaintInvalidation(VerticalScrollbar);
403 } 403 }
404 } 404 }
405 405
406 void ScrollableArea::setScrollbarNeedsPaintInvalidation(Scrollbar* scrollbar) 406 void ScrollableArea::setScrollbarNeedsPaintInvalidation(ScrollbarOrientation ori entation)
407 { 407 {
408 if (scrollbar == horizontalScrollbar()) { 408 if (orientation == HorizontalScrollbar)
409 m_horizontalScrollbarNeedsPaintInvalidation = true; 409 m_horizontalScrollbarNeedsPaintInvalidation = true;
410 scrollControlWasSetNeedsPaintInvalidation(); 410 else
411 return;
412 }
413 if (scrollbar == verticalScrollbar()) {
414 m_verticalScrollbarNeedsPaintInvalidation = true; 411 m_verticalScrollbarNeedsPaintInvalidation = true;
415 scrollControlWasSetNeedsPaintInvalidation(); 412
416 return; 413 scrollControlWasSetNeedsPaintInvalidation();
417 }
418 // Otherwise the scrollbar is just created and has not been set as either
419 // horizontalScrollbar() or verticalScrollbar().
420 } 414 }
421 415
422 void ScrollableArea::setScrollCornerNeedsPaintInvalidation() 416 void ScrollableArea::setScrollCornerNeedsPaintInvalidation()
423 { 417 {
424 if (GraphicsLayer* graphicsLayer = layerForScrollCorner()) { 418 if (GraphicsLayer* graphicsLayer = layerForScrollCorner()) {
425 graphicsLayer->setNeedsDisplay(); 419 graphicsLayer->setNeedsDisplay();
426 return; 420 return;
427 } 421 }
428 m_scrollCornerNeedsPaintInvalidation = true; 422 m_scrollCornerNeedsPaintInvalidation = true;
429 scrollControlWasSetNeedsPaintInvalidation(); 423 scrollControlWasSetNeedsPaintInvalidation();
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
573 567
574 } 568 }
575 569
576 DEFINE_TRACE(ScrollableArea) 570 DEFINE_TRACE(ScrollableArea)
577 { 571 {
578 visitor->trace(m_scrollAnimator); 572 visitor->trace(m_scrollAnimator);
579 visitor->trace(m_programmaticScrollAnimator); 573 visitor->trace(m_programmaticScrollAnimator);
580 } 574 }
581 575
582 } // namespace blink 576 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698