summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/chromeos/chrome_browser_main_chromeos.cc3
-rw-r--r--chrome/browser/chromeos/login/login_display_host_impl.cc6
-rw-r--r--chrome/browser/chromeos/preferences.cc2
-rw-r--r--chrome/browser/chromeos/preferences_browsertest.cc2
-rw-r--r--chrome/browser/chromeos/system/fake_input_device_settings.cc6
-rw-r--r--chrome/browser/chromeos/system/fake_input_device_settings.h2
-rw-r--r--chrome/browser/chromeos/system/input_device_settings.cc22
-rw-r--r--chrome/browser/chromeos/system/input_device_settings.h7
-rw-r--r--chrome/browser/ui/views/ash/tab_scrubber.cc2
9 files changed, 43 insertions, 9 deletions
diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
index 4dfc642..4979adf 100644
--- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
+++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
@@ -65,6 +65,7 @@
#include "chrome/browser/chromeos/settings/device_settings_service.h"
#include "chrome/browser/chromeos/settings/owner_key_util.h"
#include "chrome/browser/chromeos/status/data_promo_notification.h"
+#include "chrome/browser/chromeos/system/input_device_settings.h"
#include "chrome/browser/chromeos/upgrade_detector_chromeos.h"
#include "chrome/browser/defaults.h"
#include "chrome/browser/metrics/metrics_service.h"
@@ -714,7 +715,7 @@ void ChromeBrowserMainPartsChromeos::PreBrowserStart() {
if (ui::ShouldDefaultToNaturalScroll()) {
CommandLine::ForCurrentProcess()->AppendSwitch(
chromeos::switches::kNaturalScrollDefault);
- ui::SetNaturalScroll(true);
+ system::InputDeviceSettings::Get()->SetTapToClick(true);
}
ChromeBrowserMainPartsLinux::PreBrowserStart();
diff --git a/chrome/browser/chromeos/login/login_display_host_impl.cc b/chrome/browser/chromeos/login/login_display_host_impl.cc
index 51f6897..b7e072f 100644
--- a/chrome/browser/chromeos/login/login_display_host_impl.cc
+++ b/chrome/browser/chromeos/login/login_display_host_impl.cc
@@ -1055,9 +1055,9 @@ void ShowLoginWizard(const std::string& first_screen_name) {
system::InputDeviceSettings::Get()->SetTapToClick(
prefs->GetBoolean(prefs::kOwnerTapToClickEnabled));
}
-
- ui::SetNaturalScroll(CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kNaturalScrollDefault));
+ system::InputDeviceSettings::Get()->SetNaturalScroll(
+ CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kNaturalScrollDefault));
gfx::Rect screen_bounds(chromeos::CalculateScreenBounds(gfx::Size()));
diff --git a/chrome/browser/chromeos/preferences.cc b/chrome/browser/chromeos/preferences.cc
index 44048d6..758d12c 100644
--- a/chrome/browser/chromeos/preferences.cc
+++ b/chrome/browser/chromeos/preferences.cc
@@ -442,7 +442,7 @@ void Preferences::ApplyPreferences(ApplyReason reason,
const bool enabled = natural_scroll_.GetValue();
DVLOG(1) << "Natural scroll set to " << enabled;
if (user_is_active)
- ui::SetNaturalScroll(enabled);
+ touchpad_settings.SetNaturalScroll(enabled);
if (reason == REASON_PREF_CHANGED)
UMA_HISTOGRAM_BOOLEAN("Touchpad.NaturalScroll.Changed", enabled);
else if (reason == REASON_INITIALIZATION)
diff --git a/chrome/browser/chromeos/preferences_browsertest.cc b/chrome/browser/chromeos/preferences_browsertest.cc
index e955511..295bb9f 100644
--- a/chrome/browser/chromeos/preferences_browsertest.cc
+++ b/chrome/browser/chromeos/preferences_browsertest.cc
@@ -89,8 +89,6 @@ class PreferencesTest : public LoginManagerTest {
EXPECT_EQ(prefs->GetBoolean(prefs::kEnableTouchpadThreeFingerClick),
input_settings_->current_touchpad_settings()
.GetThreeFingerClick());
- EXPECT_EQ(prefs->GetBoolean(prefs::kNaturalScroll),
- ui::IsNaturalScrollEnabled());
EXPECT_EQ(prefs->GetInteger(prefs::kMouseSensitivity),
input_settings_->current_mouse_settings().GetSensitivity());
EXPECT_EQ(prefs->GetInteger(prefs::kTouchpadSensitivity),
diff --git a/chrome/browser/chromeos/system/fake_input_device_settings.cc b/chrome/browser/chromeos/system/fake_input_device_settings.cc
index b422f97..50e8038 100644
--- a/chrome/browser/chromeos/system/fake_input_device_settings.cc
+++ b/chrome/browser/chromeos/system/fake_input_device_settings.cc
@@ -46,6 +46,12 @@ void FakeInputDeviceSettings::SetTapDragging(bool enabled) {
UpdateTouchpadSettings(settings);
}
+void FakeInputDeviceSettings::SetNaturalScroll(bool enabled) {
+ TouchpadSettings settings;
+ settings.SetNaturalScroll(enabled);
+ UpdateTouchpadSettings(settings);
+}
+
void FakeInputDeviceSettings::MouseExists(
const DeviceExistsCallback& callback) {
callback.Run(false);
diff --git a/chrome/browser/chromeos/system/fake_input_device_settings.h b/chrome/browser/chromeos/system/fake_input_device_settings.h
index 78e7038..b1aa6b8 100644
--- a/chrome/browser/chromeos/system/fake_input_device_settings.h
+++ b/chrome/browser/chromeos/system/fake_input_device_settings.h
@@ -30,6 +30,8 @@ class FakeInputDeviceSettings : public InputDeviceSettings {
virtual void UpdateMouseSettings(const MouseSettings& settings) OVERRIDE;
virtual void SetMouseSensitivity(int value) OVERRIDE;
virtual void SetPrimaryButtonRight(bool right) OVERRIDE;
+ virtual void SetNaturalScroll(bool enabled) OVERRIDE;
+
virtual bool ForceKeyboardDrivenUINavigation() OVERRIDE;
virtual void ReapplyTouchpadSettings() OVERRIDE;
virtual void ReapplyMouseSettings() OVERRIDE;
diff --git a/chrome/browser/chromeos/system/input_device_settings.cc b/chrome/browser/chromeos/system/input_device_settings.cc
index 10cc5a6..e92b31a 100644
--- a/chrome/browser/chromeos/system/input_device_settings.cc
+++ b/chrome/browser/chromeos/system/input_device_settings.cc
@@ -151,6 +151,7 @@ class InputDeviceSettingsImpl : public InputDeviceSettings {
virtual void SetTapToClick(bool enabled) OVERRIDE;
virtual void SetThreeFingerClick(bool enabled) OVERRIDE;
virtual void SetTapDragging(bool enabled) OVERRIDE;
+ virtual void SetNaturalScroll(bool enabled) OVERRIDE;
virtual void MouseExists(const DeviceExistsCallback& callback) OVERRIDE;
virtual void UpdateMouseSettings(const MouseSettings& update) OVERRIDE;
virtual void SetMouseSensitivity(int value) OVERRIDE;
@@ -186,6 +187,12 @@ void InputDeviceSettingsImpl::SetTouchpadSensitivity(int value) {
UpdateTouchpadSettings(settings);
}
+void InputDeviceSettingsImpl::SetNaturalScroll(bool enabled) {
+ TouchpadSettings settings;
+ settings.SetNaturalScroll(enabled);
+ UpdateTouchpadSettings(settings);
+}
+
void InputDeviceSettingsImpl::SetTapToClick(bool enabled) {
TouchpadSettings settings;
settings.SetTapToClick(enabled);
@@ -276,6 +283,7 @@ TouchpadSettings& TouchpadSettings::operator=(const TouchpadSettings& other) {
tap_to_click_ = other.tap_to_click_;
three_finger_click_ = other.three_finger_click_;
tap_dragging_ = other.tap_dragging_;
+ natural_scroll_ = other.natural_scroll_;
}
return *this;
}
@@ -296,6 +304,14 @@ bool TouchpadSettings::GetTapToClick() const {
return tap_to_click_.value();
}
+void TouchpadSettings::SetNaturalScroll(bool enabled) {
+ natural_scroll_.Set(enabled);
+}
+
+bool TouchpadSettings::GetNaturalScroll() const {
+ return natural_scroll_.value();
+}
+
void TouchpadSettings::SetThreeFingerClick(bool enabled) {
three_finger_click_.Set(enabled);
}
@@ -339,6 +355,12 @@ bool TouchpadSettings::Update(const TouchpadSettings& settings,
if (argv)
AddTPControlArguments("tapdrag", tap_dragging_.value(), argv);
}
+ if (natural_scroll_.Update(settings.natural_scroll_)) {
+ updated = true;
+ if (argv)
+ AddTPControlArguments("australian_scrolling", natural_scroll_.value(),
+ argv);
+ }
return updated;
}
diff --git a/chrome/browser/chromeos/system/input_device_settings.h b/chrome/browser/chromeos/system/input_device_settings.h
index 901106a..ba938a1 100644
--- a/chrome/browser/chromeos/system/input_device_settings.h
+++ b/chrome/browser/chromeos/system/input_device_settings.h
@@ -96,6 +96,9 @@ class TouchpadSettings {
void SetTapDragging(bool enabled);
bool GetTapDragging() const;
+ void SetNaturalScroll(bool enabled);
+ bool GetNaturalScroll() const;
+
// Updates |this| with |settings|. If at least one setting was updated returns
// true.
// |argv| is filled with arguments of script, that should be launched in order
@@ -107,6 +110,7 @@ class TouchpadSettings {
internal::Optional<bool> tap_to_click_;
internal::Optional<bool> three_finger_click_;
internal::Optional<bool> tap_dragging_;
+ internal::Optional<bool> natural_scroll_;
};
// Auxiliary class used to update several mouse settings at a time. User
@@ -173,6 +177,9 @@ class InputDeviceSettings {
// Turns tap-dragging on/off.
virtual void SetTapDragging(bool enabled) = 0;
+ // Turns natural scrolling on/off for all devices except wheel mice
+ virtual void SetNaturalScroll(bool enabled) = 0;
+
// Calls |callback| asynchronously after determining if a mouse is connected.
virtual void MouseExists(const DeviceExistsCallback& callback) = 0;
diff --git a/chrome/browser/ui/views/ash/tab_scrubber.cc b/chrome/browser/ui/views/ash/tab_scrubber.cc
index 9cc6f46..49ef35a 100644
--- a/chrome/browser/ui/views/ash/tab_scrubber.cc
+++ b/chrome/browser/ui/views/ash/tab_scrubber.cc
@@ -109,8 +109,6 @@ void TabScrubber::OnScrollEvent(ui::ScrollEvent* event) {
event->StopPropagation();
float x_offset = event->x_offset();
- if (!ui::IsNaturalScrollEnabled())
- x_offset = -x_offset;
int last_tab_index = highlighted_tab_ == -1 ?
browser->tab_strip_model()->active_index() : highlighted_tab_;
if (!scrubbing_) {