diff options
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r-- | src/QuickMedia.cpp | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index a5c423d..5a57022 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -205,7 +205,9 @@ namespace QuickMedia { const char* get_title() const override { return "History"; } PluginResult submit(const std::string &title, const std::string &url, std::vector<Tab> &result_tabs) override { search_page->submit_body_item = submit_body_item; - return search_page->submit(title, url, result_tabs); + PluginResult result = search_page->submit(title, url, result_tabs); + search_page->submit_body_item = nullptr; + return result; } PluginResult lazy_fetch(BodyItems &result_items) override { switch(history_type) { @@ -3658,6 +3660,26 @@ namespace QuickMedia { page_navigation = 1; goto end_of_images_page; } + } else if(event.key.code == mgl::Keyboard::PageUp) { + if(image_index > 0) { + image_index = std::max(0, image_index - 10); + goto end_of_images_page; + } + } else if(event.key.code == mgl::Keyboard::PageDown) { + if(image_index < num_manga_pages) { + image_index = std::min(num_manga_pages, image_index + 10); + goto end_of_images_page; + } + } else if(event.key.code == mgl::Keyboard::Home) { + if(image_index > 0) { + image_index = 0; + goto end_of_images_page; + } + } else if(event.key.code == mgl::Keyboard::End) { + if(image_index < num_manga_pages) { + image_index = num_manga_pages; + goto end_of_images_page; + } } else if(event.key.code == mgl::Keyboard::Escape) { current_page = pop_page_stack(); } else if(event.key.code == mgl::Keyboard::I) { @@ -7423,12 +7445,13 @@ namespace QuickMedia { if(window.is_key_pressed(mgl::Keyboard::LControl) || window.is_key_pressed(mgl::Keyboard::RControl)) return; - BodyItem *selected = file_manager_body->get_selected(); + auto selected = file_manager_body->get_selected_shared(); if(!selected) return; std::vector<Tab> new_tabs; TaskResult task_result = run_task_with_loading_screen([selected, &file_manager_page, &new_tabs]() { + file_manager_page->submit_body_item = selected; return file_manager_page->submit(selected->get_title(), selected->url, new_tabs) == PluginResult::OK; }); |