Index: ui/views/controls/slider.cc |
diff --git a/ui/views/controls/slider.cc b/ui/views/controls/slider.cc |
index 219ebf6c02195dff7fb3096b33e49f5de41bd282..eacd6aa2644ac757da76faf026f69af121d36218 100644 |
--- a/ui/views/controls/slider.cc |
+++ b/ui/views/controls/slider.cc |
@@ -243,14 +243,26 @@ void Slider::OnMouseReleased(const ui::MouseEvent& event) { |
} |
bool Slider::OnKeyPressed(const ui::KeyEvent& event) { |
- float new_value = value_; |
- if (event.key_code() == ui::VKEY_LEFT) |
- new_value -= keyboard_increment_; |
- else if (event.key_code() == ui::VKEY_RIGHT) |
- new_value += keyboard_increment_; |
- else |
- return false; |
- SetValueInternal(new_value, VALUE_CHANGED_BY_USER); |
+ int direction = 1; |
+ switch (event.key_code()) { |
+ case ui::VKEY_LEFT: |
+ direction = base::i18n::IsRTL() ? 1 : -1; |
+ break; |
+ case ui::VKEY_RIGHT: |
+ direction = base::i18n::IsRTL() ? -1 : 1; |
+ break; |
+ case ui::VKEY_UP: |
+ direction = 1; |
+ break; |
+ case ui::VKEY_DOWN: |
+ direction = -1; |
+ break; |
+ |
+ default: |
+ return false; |
+ } |
+ SetValueInternal(value_ + direction * keyboard_increment_, |
+ VALUE_CHANGED_BY_USER); |
return true; |
} |