diff options
Diffstat (limited to 'chrome/browser')
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_) { |