diff options
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r-- | src/QuickMedia.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index 8d6e4a2..ddb81a9 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -3076,7 +3076,7 @@ namespace QuickMedia { std::string channel_url; AsyncTask<void> related_videos_task; - std::function<void(const char*)> video_event_callback; + EventCallbackFunc video_event_callback; bool go_to_previous_page = false; std::string video_url; @@ -3317,7 +3317,7 @@ namespace QuickMedia { } }; - video_event_callback = [&](const char *event_name) mutable { + video_event_callback = [&](const char *event_name, const std::vector<std::string> &args) mutable { if(strcmp(event_name, "pause") == 0) { //double time_remaining = 9999.0; //if(video_player->get_time_remaining(&time_remaining) == VideoPlayer::Error::OK && time_remaining <= 1.0) @@ -3337,6 +3337,8 @@ namespace QuickMedia { } else if(strcmp(event_name, "seek") == 0) { if(video_page->is_local()) update_time_pos = true; + } else if(strcmp(event_name, "fullscreen") == 0 && args.size() == 1) { + window_set_fullscreen(disp, window.get_system_handle(), args[0] == "yes" ? WindowFullscreenState::SET : WindowFullscreenState::UNSET); } //fprintf(stderr, "event name: %s\n", event_name); @@ -3376,13 +3378,12 @@ namespace QuickMedia { } else if(event.type == mgl::Event::KeyPressed && (event.key.code == mgl::Keyboard::Escape || event.key.code == mgl::Keyboard::Q || event.key.code == mgl::Keyboard::Backspace)) { // To be able to close the video player while the video is loading if(window_is_fullscreen(disp, window.get_system_handle())) { - window_set_fullscreen(disp, window.get_system_handle(), WindowFullscreenState::UNSET); + if(video_player && video_player_window && event.key.code != mgl::Keyboard::Escape) + video_player->cycle_fullscreen(); } else { current_page = previous_page; go_to_previous_page = true; } - } else if(event.type == mgl::Event::KeyPressed && event.key.code == mgl::Keyboard::F && event.key.control) { - window_set_fullscreen(disp, window.get_system_handle(), WindowFullscreenState::TOGGLE); } else if(event.type == mgl::Event::KeyPressed && event.key.code == mgl::Keyboard::C && event.key.control && !video_page->is_local()) { save_video_url_to_clipboard(); } else if(event.type == mgl::Event::KeyPressed && event.key.code == mgl::Keyboard::F5 && !video_page->is_local()) { @@ -3401,14 +3402,15 @@ namespace QuickMedia { window.close(); } else if(pressed_keysym == XK_Escape || pressed_keysym == XK_q || pressed_keysym == XK_BackSpace) { if(window_is_fullscreen(disp, window.get_system_handle())) { - window_set_fullscreen(disp, window.get_system_handle(), WindowFullscreenState::UNSET); + if(pressed_keysym != XK_Escape) + video_player->cycle_fullscreen(); } else { current_page = previous_page; go_to_previous_page = true; break; } } else if(pressed_keysym == XK_f && pressing_ctrl) { - window_set_fullscreen(disp, window.get_system_handle(), WindowFullscreenState::TOGGLE); + video_player->cycle_fullscreen(); } else if(pressed_keysym == XK_s && pressing_ctrl && !video_page->is_local()) { video_page_download_video(video_page->get_download_url(video_get_max_height()), video_player_window); } else if(pressed_keysym == XK_F5 && !video_page->is_local()) { |