| Index: Source/core/platform/ScrollbarThemeMacCommon.mm
|
| diff --git a/Source/core/platform/ScrollbarThemeMacCommon.mm b/Source/core/platform/ScrollbarThemeMacCommon.mm
|
| index 8fbfc1097492c55faf9611bd6147ae09d5a1614c..9d8187c1659fad6d043d381a1b3bd4500630b9a4 100644
|
| --- a/Source/core/platform/ScrollbarThemeMacCommon.mm
|
| +++ b/Source/core/platform/ScrollbarThemeMacCommon.mm
|
| @@ -90,14 +90,11 @@ static ScrollbarSet& scrollbarSet()
|
| if (theme->isMockTheme())
|
| return;
|
|
|
| - static_cast<ScrollbarThemeMacCommon*>(ScrollbarTheme::theme())->preferencesChanged();
|
| - if (scrollbarSet().isEmpty())
|
| - return;
|
| - ScrollbarSet::iterator end = scrollbarSet().end();
|
| - for (ScrollbarSet::iterator it = scrollbarSet().begin(); it != end; ++it) {
|
| - (*it)->styleChanged();
|
| - (*it)->invalidate();
|
| - }
|
| + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
| + [defaults synchronize];
|
| + static_cast<ScrollbarThemeMacCommon*>(ScrollbarTheme::theme())->preferencesChanged(
|
| + [defaults floatForKey:@"NSScrollerButtonDelay"], [defaults floatForKey:@"NSScrollerButtonPeriod"],
|
| + [defaults boolForKey:@"AppleScrollerPagingBehavior"], true);
|
| }
|
|
|
| + (void)behaviorPrefsChanged:(NSNotification*)unusedNotification
|
| @@ -108,7 +105,11 @@ static ScrollbarSet& scrollbarSet()
|
| if (theme->isMockTheme())
|
| return;
|
|
|
| - static_cast<ScrollbarThemeMacCommon*>(ScrollbarTheme::theme())->preferencesChanged();
|
| + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
| + [defaults synchronize];
|
| + static_cast<ScrollbarThemeMacCommon*>(ScrollbarTheme::theme())->preferencesChanged(
|
| + [defaults floatForKey:@"NSScrollerButtonDelay"], [defaults floatForKey:@"NSScrollerButtonPeriod"],
|
| + [defaults boolForKey:@"AppleScrollerPagingBehavior"], false);
|
| }
|
|
|
| + (void)registerAsObserver
|
| @@ -340,7 +341,11 @@ ScrollbarThemeMacCommon::ScrollbarThemeMacCommon()
|
| if (!initialized) {
|
| initialized = true;
|
| [WebScrollbarPrefsObserver registerAsObserver];
|
| - preferencesChanged();
|
| + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
| + [defaults synchronize];
|
| + preferencesChanged(
|
| + [defaults floatForKey:@"NSScrollerButtonDelay"], [defaults floatForKey:@"NSScrollerButtonPeriod"],
|
| + [defaults boolForKey:@"AppleScrollerPagingBehavior"], false);
|
| }
|
| }
|
|
|
| @@ -348,14 +353,19 @@ ScrollbarThemeMacCommon::~ScrollbarThemeMacCommon()
|
| {
|
| }
|
|
|
| -void ScrollbarThemeMacCommon::preferencesChanged()
|
| +void ScrollbarThemeMacCommon::preferencesChanged(float initialButtonDelay, float autoscrollButtonDelay, bool jumpOnTrackClick, bool redraw)
|
| {
|
| - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
| - [defaults synchronize];
|
| updateButtonPlacement();
|
| - gInitialButtonDelay = [defaults floatForKey:@"NSScrollerButtonDelay"];
|
| - gAutoscrollButtonDelay = [defaults floatForKey:@"NSScrollerButtonPeriod"];
|
| - gJumpOnTrackClick = [defaults boolForKey:@"AppleScrollerPagingBehavior"];
|
| + gInitialButtonDelay = initialButtonDelay;
|
| + gAutoscrollButtonDelay = autoscrollButtonDelay;
|
| + gJumpOnTrackClick = jumpOnTrackClick;
|
| + if (redraw && !scrollbarSet().isEmpty()) {
|
| + ScrollbarSet::iterator end = scrollbarSet().end();
|
| + for (ScrollbarSet::iterator it = scrollbarSet().begin(); it != end; ++it) {
|
| + (*it)->styleChanged();
|
| + (*it)->invalidate();
|
| + }
|
| + }
|
| }
|
|
|
| double ScrollbarThemeMacCommon::initialAutoscrollTimerDelay()
|
|
|