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

Unified Diff: Source/core/platform/ScrollbarThemeMacCommon.mm

Issue 57463002: Have Blink be told of scrollbar changes rather than paying attention itself (Blink side). (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: good version Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/platform/ScrollbarThemeMacCommon.h ('k') | Source/web/mac/WebScrollbarTheme.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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()
« no previous file with comments | « Source/core/platform/ScrollbarThemeMacCommon.h ('k') | Source/web/mac/WebScrollbarTheme.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698