Преглед на файлове

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.
Timothy Flynn преди 2 години
родител
ревизия
6a5229c2cb
променени са 1 файла, в които са добавени 21 реда и са изтрити 0 реда
  1. 21 0
      Userland/Libraries/LibWeb/HTML/HTMLMediaElement.cpp

+ 21 - 0
Userland/Libraries/LibWeb/HTML/HTMLMediaElement.cpp

@@ -1864,6 +1864,27 @@ WebIDL::ExceptionOr<void> HTMLMediaElement::handle_keydown(Badge<Web::EventHandl
         TRY(toggle_playback());
         TRY(toggle_playback());
         break;
         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:
     default:
         break;
         break;
     }
     }