diff options
author | fukino <fukino@chromium.org> | 2016-01-21 21:42:23 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-22 05:43:18 +0000 |
commit | f64f908c5c41aa8d68feec7220ad9aa9d7f66f01 (patch) | |
tree | f0cc3aa6c18e4bddd3bae7cb0b9d9d4f1362bed6 /ui/file_manager/audio_player | |
parent | b45a4e2a5e59a12141ae5424861cb9f32d078270 (diff) | |
download | chromium_src-f64f908c5c41aa8d68feec7220ad9aa9d7f66f01.zip chromium_src-f64f908c5c41aa8d68feec7220ad9aa9d7f66f01.tar.gz chromium_src-f64f908c5c41aa8d68feec7220ad9aa9d7f66f01.tar.bz2 |
Audio Player: Improve how to skip playing position on arrow keys on time slider.
When time slider is focused, playing position should be skipped on arrow keys as follows:
<Right> or <Up>: skip forward 5 seconds or 10% of duration, whichever is smaller.
<Left> or <Down>: skip forward 5 seconds or 10% of duration, whichever is smaller.
BUG=492980
TEST=manually
Review URL: https://codereview.chromium.org/1613073003
Cr-Commit-Position: refs/heads/master@{#370915}
Diffstat (limited to 'ui/file_manager/audio_player')
-rw-r--r-- | ui/file_manager/audio_player/elements/control_panel.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/ui/file_manager/audio_player/elements/control_panel.js b/ui/file_manager/audio_player/elements/control_panel.js index 0267152..790c41a 100644 --- a/ui/file_manager/audio_player/elements/control_panel.js +++ b/ui/file_manager/audio_player/elements/control_panel.js @@ -139,6 +139,10 @@ if (!this.dragging) this.dragging = true; }.bind(this)); + timeSlider.addEventListener('keydown', + this.onProgressKeyDownOrKeyPress_.bind(this)); + timeSlider.addEventListener('keypress', + this.onProgressKeyDownOrKeyPress_.bind(this)); // Update volume on user inputs for volume slider. // During a drag operation, the volume should be updated immediately. @@ -269,6 +273,30 @@ this.$.volumeButton.setAttribute('aria-label', this.volume !== 0 ? ariaLabels.mute : ariaLabels.unmute); this.$.volumeSlider.setAttribute('aria-label', ariaLabels.volumeSlider); + }, + + /** + * Handles arrow keys on time slider to skip forward/backword. + * @param {!Event} event + * @private + */ + onProgressKeyDownOrKeyPress_: function(event) { + if (event.code !== 'ArrowRight' && event.code !== 'ArrowLeft' && + event.code !== 'ArrowUp' && event.code !== 'ArrowDown') { + return; + } + + event.preventDefault(); + + if (this.duration > 0) { + // Skip 5 seconds or 10% of duration, whichever is smaller. + var millisecondsToSkip = Math.min(5000, this.duration / 10); + if (event.code === 'ArrowRight' || event.code === 'ArrowUp') { + this.time = Math.min(this.time + millisecondsToSkip, this.duration); + } else { + this.time = Math.max(this.time - millisecondsToSkip, 0); + } + } } }); })(); // Anonymous closure |