| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2010, 2011 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 670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 681 BEGIN_BLOCK_OBJC_EXCEPTIONS; | 681 BEGIN_BLOCK_OBJC_EXCEPTIONS; |
| 682 [m_scrollbarPainterControllerDelegate.get() invalidate]; | 682 [m_scrollbarPainterControllerDelegate.get() invalidate]; |
| 683 [m_scrollbarPainterController.get() setDelegate:nil]; | 683 [m_scrollbarPainterController.get() setDelegate:nil]; |
| 684 [m_horizontalScrollbarPainterDelegate.get() invalidate]; | 684 [m_horizontalScrollbarPainterDelegate.get() invalidate]; |
| 685 [m_verticalScrollbarPainterDelegate.get() invalidate]; | 685 [m_verticalScrollbarPainterDelegate.get() invalidate]; |
| 686 [m_scrollAnimationHelperDelegate.get() invalidate]; | 686 [m_scrollAnimationHelperDelegate.get() invalidate]; |
| 687 END_BLOCK_OBJC_EXCEPTIONS; | 687 END_BLOCK_OBJC_EXCEPTIONS; |
| 688 } | 688 } |
| 689 } | 689 } |
| 690 | 690 |
| 691 static bool scrollAnimationEnabledForSystem() | |
| 692 { | |
| 693 static bool initialized = false; | |
| 694 static bool enabled = true; | |
| 695 if (!initialized) { | |
| 696 // Check setting for OS X 10.8+. | |
| 697 id value = [[NSUserDefaults standardUserDefaults] objectForKey:@"NSScrol
lAnimationEnabled"]; | |
| 698 // Check setting for OS X < 10.8. | |
| 699 if (!value) | |
| 700 value = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleS
crollAnimationEnabled"]; | |
| 701 if (value) | |
| 702 enabled = [value boolValue]; | |
| 703 initialized = true; | |
| 704 } | |
| 705 return enabled; | |
| 706 } | |
| 707 | |
| 708 ScrollResultOneDimensional ScrollAnimatorMac::userScroll(ScrollbarOrientation or
ientation, ScrollGranularity granularity, float step, float delta) | 691 ScrollResultOneDimensional ScrollAnimatorMac::userScroll(ScrollbarOrientation or
ientation, ScrollGranularity granularity, float step, float delta) |
| 709 { | 692 { |
| 693 bool scrollAnimationEnabledForSystem = static_cast<ScrollbarThemeMacCommon*>
( |
| 694 ScrollbarTheme::theme()) |
| 695 ->scrollAnimationEnabledForSystem
(); |
| 710 m_haveScrolledSincePageLoad = true; | 696 m_haveScrolledSincePageLoad = true; |
| 711 | 697 |
| 712 if (!scrollAnimationEnabledForSystem() || !m_scrollableArea->scrollAnimatorE
nabled()) | 698 if (!scrollAnimationEnabledForSystem || !m_scrollableArea->scrollAnimatorEna
bled()) |
| 713 return ScrollAnimator::userScroll(orientation, granularity, step, delta)
; | 699 return ScrollAnimator::userScroll(orientation, granularity, step, delta)
; |
| 714 | 700 |
| 715 if (granularity == ScrollByPixel || granularity == ScrollByPrecisePixel) | 701 if (granularity == ScrollByPixel || granularity == ScrollByPrecisePixel) |
| 716 return ScrollAnimator::userScroll(orientation, granularity, step, delta)
; | 702 return ScrollAnimator::userScroll(orientation, granularity, step, delta)
; |
| 717 | 703 |
| 718 float currentPos = orientation == HorizontalScrollbar ? m_currentPosX : m_cu
rrentPosY; | 704 float currentPos = orientation == HorizontalScrollbar ? m_currentPosX : m_cu
rrentPosY; |
| 719 float newPos = std::max<float>(std::min<float>(currentPos + (step * delta),
m_scrollableArea->maximumScrollPosition(orientation)), m_scrollableArea->minimum
ScrollPosition(orientation)); | 705 float newPos = std::max<float>(std::min<float>(currentPos + (step * delta),
m_scrollableArea->maximumScrollPosition(orientation)), m_scrollableArea->minimum
ScrollPosition(orientation)); |
| 720 if (currentPos == newPos) | 706 if (currentPos == newPos) |
| 721 return ScrollResultOneDimensional(false); | 707 return ScrollResultOneDimensional(false); |
| 722 | 708 |
| (...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1164 return; | 1150 return; |
| 1165 | 1151 |
| 1166 m_visibleScrollerThumbRect = rectInViewCoordinates; | 1152 m_visibleScrollerThumbRect = rectInViewCoordinates; |
| 1167 } | 1153 } |
| 1168 | 1154 |
| 1169 bool ScrollAnimatorMac::canUseCoordinatedScrollbar() { | 1155 bool ScrollAnimatorMac::canUseCoordinatedScrollbar() { |
| 1170 return ScrollbarThemeMacCommon::isOverlayAPIAvailable(); | 1156 return ScrollbarThemeMacCommon::isOverlayAPIAvailable(); |
| 1171 } | 1157 } |
| 1172 | 1158 |
| 1173 } // namespace blink | 1159 } // namespace blink |
| OLD | NEW |