Index: chrome/browser/chromeos/touchpad.cc |
=================================================================== |
--- chrome/browser/chromeos/touchpad.cc (revision 26427) |
+++ chrome/browser/chromeos/touchpad.cc (working copy) |
@@ -30,17 +30,20 @@ |
// static |
void Touchpad::RegisterUserPrefs(PrefService* prefs) { |
- prefs->RegisterBooleanPref(prefs::kTapToClickEnabled, true); |
+ prefs->RegisterBooleanPref(prefs::kTapToClickEnabled, false); |
prefs->RegisterBooleanPref(prefs::kVertEdgeScrollEnabled, true); |
+ prefs->RegisterRealPref(prefs::kTouchpadSpeedFactor, 0.5); |
} |
void Touchpad::Init(PrefService* prefs) { |
tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, this); |
vert_edge_scroll_enabled_.Init(prefs::kVertEdgeScrollEnabled, prefs, this); |
+ speed_factor_.Init(prefs::kTouchpadSpeedFactor, prefs, this); |
// Initialize touchpad settings to what's saved in user preferences. |
SetTapToClick(); |
SetVertEdgeScroll(); |
+ SetSpeedFactor(); |
} |
void Touchpad::Observe(NotificationType type, |
@@ -55,6 +58,8 @@ |
SetTapToClick(); |
if (!pref_name || *pref_name == prefs::kVertEdgeScrollEnabled) |
SetVertEdgeScroll(); |
+ if (!pref_name || *pref_name == prefs::kTouchpadSpeedFactor) |
+ SetSpeedFactor(); |
} |
void Touchpad::SetSynclientParam(const std::string& param, |
@@ -96,3 +101,16 @@ |
else |
SetSynclientParam("VertEdgeScroll", "0"); |
} |
+ |
+void Touchpad::SetSpeedFactor() { |
+ // To set speed factor, we use MinSpeed. Both MaxSpeed and AccelFactor are 0. |
+ // So MinSpeed will control the speed of the cursor with respect to the |
+ // touchpad movement and there will not be any acceleration. |
+ // We enforce that MinSpeed is between 0.01 and 1.00. |
+ double value = speed_factor_.GetValue(); |
+ if (value < 0.01) |
+ value = 0.01; |
+ if (value > 1.0) |
+ value = 1.0; |
+ SetSynclientParam("MinSpeed", StringPrintf("%f", value)); |
+} |