mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-04 08:36:12 +00:00
LibVideo/VideoPlayer: Dispatch state change events and update play icon
The PlaybackStateChangeEvent wasn't connected up anymore, so the player wouldn't change icons when stopping playback due to reaching the end of the stream or encountering an error.
This commit is contained in:
parent
aa0f7d9c89
commit
a6b938b407
Notes:
sideshowbarker
2024-07-17 18:49:10 +09:00
Author: https://github.com/Zaggy1024
Commit: a6b938b407
Pull-request: https://github.com/SerenityOS/serenity/pull/17448
3 changed files with 7 additions and 2 deletions
|
@ -129,7 +129,6 @@ void VideoPlayerWidget::resume_playback()
|
|||
if (!m_playback_manager || m_seek_slider->knob_dragging())
|
||||
return;
|
||||
m_playback_manager->resume_playback();
|
||||
update_play_pause_icon();
|
||||
}
|
||||
|
||||
void VideoPlayerWidget::pause_playback()
|
||||
|
@ -137,7 +136,6 @@ void VideoPlayerWidget::pause_playback()
|
|||
if (!m_playback_manager || m_seek_slider->knob_dragging())
|
||||
return;
|
||||
m_playback_manager->pause_playback();
|
||||
update_play_pause_icon();
|
||||
}
|
||||
|
||||
void VideoPlayerWidget::toggle_pause()
|
||||
|
|
|
@ -121,6 +121,11 @@ bool PlaybackManager::dispatch_frame_queue_item(FrameQueueItem&& item)
|
|||
return false;
|
||||
}
|
||||
|
||||
void PlaybackManager::dispatch_state_change()
|
||||
{
|
||||
m_main_loop.post_event(m_event_handler, TRY_OR_FATAL_ERROR(try_make<PlaybackStateChangeEvent>()));
|
||||
}
|
||||
|
||||
void PlaybackManager::timer_callback()
|
||||
{
|
||||
TRY_OR_FATAL_ERROR(m_playback_handler->on_timer_callback());
|
||||
|
@ -265,6 +270,7 @@ ErrorOr<void> PlaybackManager::PlaybackStateHandler::replace_handler_and_delete_
|
|||
m_has_exited = true;
|
||||
dbgln("Changing state from {} to {}", temp_handler->name(), m_manager.m_playback_handler->name());
|
||||
#endif
|
||||
m_manager.dispatch_state_change();
|
||||
TRY(m_manager.m_playback_handler->on_enter());
|
||||
return {};
|
||||
}
|
||||
|
|
|
@ -132,6 +132,7 @@ private:
|
|||
void dispatch_new_frame(RefPtr<Gfx::Bitmap> frame);
|
||||
// Returns whether we changed playback states. If so, any PlaybackStateHandler processing must cease.
|
||||
[[nodiscard]] bool dispatch_frame_queue_item(FrameQueueItem&&);
|
||||
void dispatch_state_change();
|
||||
void dispatch_fatal_error(Error);
|
||||
|
||||
Core::Object& m_event_handler;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue