LibWeb: Allow seeking media elements with keyboard controls

This allows seeking backwards and forwards by 5 seconds with the left
and right arrow keys, respectively. This also allows seeking to the
beginning and end of the media track with the home and end keys.
This commit is contained in:
Timothy Flynn 2023-07-02 22:21:08 -07:00 committed by Andreas Kling
parent a4070b1452
commit 6a5229c2cb
Notes: sideshowbarker 2024-07-17 07:20:49 +09:00

View file

@ -1864,6 +1864,27 @@ WebIDL::ExceptionOr<void> HTMLMediaElement::handle_keydown(Badge<Web::EventHandl
TRY(toggle_playback());
break;
case KeyCode::Key_Home:
set_current_time(0);
break;
case KeyCode::Key_End:
set_current_time(duration());
break;
case KeyCode::Key_Left:
case KeyCode::Key_Right: {
static constexpr double time_skipped_per_key_press = 5.0;
auto current_time = this->current_time();
if (key == KeyCode::Key_Left)
current_time = max(0.0, current_time - time_skipped_per_key_press);
else
current_time = min(duration(), current_time + time_skipped_per_key_press);
set_current_time(current_time);
break;
}
default:
break;
}