| OLD | NEW |
| 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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 static const float kMinFractionToStepWhenPaging = 0.875f; | 43 static const float kMinFractionToStepWhenPaging = 0.875f; |
| 44 | 44 |
| 45 namespace blink { | 45 namespace blink { |
| 46 | 46 |
| 47 struct SameSizeAsScrollableArea { | 47 struct SameSizeAsScrollableArea { |
| 48 virtual ~SameSizeAsScrollableArea(); | 48 virtual ~SameSizeAsScrollableArea(); |
| 49 #if ENABLE(ASSERT) | 49 #if ENABLE(ASSERT) |
| 50 VerifyEagerFinalization verifyEager; | 50 VerifyEagerFinalization verifyEager; |
| 51 #endif | 51 #endif |
| 52 Member<void*> pointer[2]; | 52 Member<void*> pointer[2]; |
| 53 unsigned bitfields : 16; | 53 unsigned bitfields : 17; |
| 54 IntPoint origin; | 54 IntPoint origin; |
| 55 }; | 55 }; |
| 56 | 56 |
| 57 static_assert(sizeof(ScrollableArea) == sizeof(SameSizeAsScrollableArea), | 57 static_assert(sizeof(ScrollableArea) == sizeof(SameSizeAsScrollableArea), |
| 58 "ScrollableArea should stay small"); | 58 "ScrollableArea should stay small"); |
| 59 | 59 |
| 60 int ScrollableArea::pixelsPerLineStep(HostWindow* host) { | 60 int ScrollableArea::pixelsPerLineStep(HostWindow* host) { |
| 61 if (!host) | 61 if (!host) |
| 62 return kPixelsPerLineStep; | 62 return kPixelsPerLineStep; |
| 63 return host->windowToViewportScalar(kPixelsPerLineStep); | 63 return host->windowToViewportScalar(kPixelsPerLineStep); |
| 64 } | 64 } |
| 65 | 65 |
| 66 float ScrollableArea::minFractionToStepWhenPaging() { | 66 float ScrollableArea::minFractionToStepWhenPaging() { |
| 67 return kMinFractionToStepWhenPaging; | 67 return kMinFractionToStepWhenPaging; |
| 68 } | 68 } |
| 69 | 69 |
| 70 int ScrollableArea::maxOverlapBetweenPages() { | 70 int ScrollableArea::maxOverlapBetweenPages() { |
| 71 static int maxOverlapBetweenPages = | 71 static int maxOverlapBetweenPages = |
| 72 ScrollbarTheme::theme().maxOverlapBetweenPages(); | 72 ScrollbarTheme::theme().maxOverlapBetweenPages(); |
| 73 return maxOverlapBetweenPages; | 73 return maxOverlapBetweenPages; |
| 74 } | 74 } |
| 75 | 75 |
| 76 ScrollableArea::ScrollableArea() | 76 ScrollableArea::ScrollableArea() |
| 77 : m_scrollbarOverlayColorTheme(ScrollbarOverlayColorThemeDark), | 77 : m_scrollbarOverlayColorTheme(ScrollbarOverlayColorThemeDark), |
| 78 m_scrollOriginChanged(false), | 78 m_scrollOriginChanged(false), |
| 79 m_horizontalScrollbarNeedsPaintInvalidation(false), | 79 m_horizontalScrollbarNeedsPaintInvalidation(false), |
| 80 m_verticalScrollbarNeedsPaintInvalidation(false), | 80 m_verticalScrollbarNeedsPaintInvalidation(false), |
| 81 m_scrollCornerNeedsPaintInvalidation(false) {} | 81 m_scrollCornerNeedsPaintInvalidation(false), |
| 82 m_scrollbarsHidden(false) {} |
| 82 | 83 |
| 83 ScrollableArea::~ScrollableArea() {} | 84 ScrollableArea::~ScrollableArea() {} |
| 84 | 85 |
| 85 void ScrollableArea::clearScrollAnimators() { | 86 void ScrollableArea::clearScrollAnimators() { |
| 86 #if OS(MACOSX) | 87 #if OS(MACOSX) |
| 87 if (m_scrollAnimator) | 88 if (m_scrollAnimator) |
| 88 m_scrollAnimator->dispose(); | 89 m_scrollAnimator->dispose(); |
| 89 #endif | 90 #endif |
| 90 m_scrollAnimator.clear(); | 91 m_scrollAnimator.clear(); |
| 91 m_programmaticScrollAnimator.clear(); | 92 m_programmaticScrollAnimator.clear(); |
| (...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 523 // scheduled on the compositor. | 524 // scheduled on the compositor. |
| 524 // TODO(ymalik): We have a non-transient "main thread scrolling reason" | 525 // TODO(ymalik): We have a non-transient "main thread scrolling reason" |
| 525 // that doesn't actually cause shouldScrollOnMainThread() to be true. | 526 // that doesn't actually cause shouldScrollOnMainThread() to be true. |
| 526 // This is confusing and should be cleaned up. | 527 // This is confusing and should be cleaned up. |
| 527 return !!(reasons & | 528 return !!(reasons & |
| 528 ~MainThreadScrollingReason::kHandlingScrollFromMainThread); | 529 ~MainThreadScrollingReason::kHandlingScrollFromMainThread); |
| 529 } | 530 } |
| 530 return true; | 531 return true; |
| 531 } | 532 } |
| 532 | 533 |
| 534 bool ScrollableArea::scrollbarsHidden() const { |
| 535 return hasOverlayScrollbars() && m_scrollbarsHidden; |
| 536 } |
| 537 |
| 538 void ScrollableArea::setScrollbarsHidden(bool hidden) { |
| 539 if (m_scrollbarsHidden == static_cast<unsigned>(hidden)) |
| 540 return; |
| 541 m_scrollbarsHidden = hidden; |
| 542 didChangeScrollbarsHidden(); |
| 543 } |
| 544 |
| 533 IntRect ScrollableArea::visibleContentRect( | 545 IntRect ScrollableArea::visibleContentRect( |
| 534 IncludeScrollbarsInRect scrollbarInclusion) const { | 546 IncludeScrollbarsInRect scrollbarInclusion) const { |
| 535 int scrollbarWidth = | 547 int scrollbarWidth = |
| 536 scrollbarInclusion == IncludeScrollbars ? verticalScrollbarWidth() : 0; | 548 scrollbarInclusion == IncludeScrollbars ? verticalScrollbarWidth() : 0; |
| 537 int scrollbarHeight = | 549 int scrollbarHeight = |
| 538 scrollbarInclusion == IncludeScrollbars ? horizontalScrollbarHeight() : 0; | 550 scrollbarInclusion == IncludeScrollbars ? horizontalScrollbarHeight() : 0; |
| 539 | 551 |
| 540 return enclosingIntRect( | 552 return enclosingIntRect( |
| 541 IntRect(scrollOffset().width(), scrollOffset().height(), | 553 IntRect(scrollOffset().width(), scrollOffset().height(), |
| 542 std::max(0, visibleWidth() + scrollbarWidth), | 554 std::max(0, visibleWidth() + scrollbarWidth), |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 592 return IntSize(std::max(0, size.width() - verticalScrollbarWidth()), | 604 return IntSize(std::max(0, size.width() - verticalScrollbarWidth()), |
| 593 std::max(0, size.height() - horizontalScrollbarHeight())); | 605 std::max(0, size.height() - horizontalScrollbarHeight())); |
| 594 } | 606 } |
| 595 | 607 |
| 596 DEFINE_TRACE(ScrollableArea) { | 608 DEFINE_TRACE(ScrollableArea) { |
| 597 visitor->trace(m_scrollAnimator); | 609 visitor->trace(m_scrollAnimator); |
| 598 visitor->trace(m_programmaticScrollAnimator); | 610 visitor->trace(m_programmaticScrollAnimator); |
| 599 } | 611 } |
| 600 | 612 |
| 601 } // namespace blink | 613 } // namespace blink |
| OLD | NEW |