diff options
author | dec05eba <dec05eba@protonmail.com> | 2022-03-13 05:19:37 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2022-03-13 05:19:37 +0100 |
commit | c3819073118488ffef5482957758d65be8c33cec (patch) | |
tree | 75d4ba28772f90580d2ca1c3056e244ccaaea440 /src/ImageViewer.cpp | |
parent | fc27e590c39e3b309683e275541fd9b3164985dc (diff) |
Attempt to fix video player focus, add keys to navigate to previous/next chapter in image scroll view
Diffstat (limited to 'src/ImageViewer.cpp')
-rw-r--r-- | src/ImageViewer.cpp | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/src/ImageViewer.cpp b/src/ImageViewer.cpp index d00c375..1176046 100644 --- a/src/ImageViewer.cpp +++ b/src/ImageViewer.cpp @@ -194,6 +194,22 @@ namespace QuickMedia { return value >= 0.0 ? 1.0 : -1.0; } + static bool is_key_scroll_up(const mgl::Event::KeyEvent &key) { + return (!key.control && key.code == mgl::Keyboard::Up) || (!key.alt && key.control && key.code == mgl::Keyboard::K); + } + + static bool is_key_scroll_down(const mgl::Event::KeyEvent &key) { + return (!key.control && key.code == mgl::Keyboard::Down) || (!key.alt && key.control && key.code == mgl::Keyboard::J); + } + + static bool is_key_previous_chapter(const mgl::Event::KeyEvent &key) { + return (key.control && key.code == mgl::Keyboard::Up) || (key.alt && key.control && key.code == mgl::Keyboard::K); + } + + static bool is_key_next_chapter(const mgl::Event::KeyEvent &key) { + return (key.control && key.code == mgl::Keyboard::Down) || (key.alt && key.control && key.code == mgl::Keyboard::J); + } + ImageViewerAction ImageViewer::draw() { const double frame_delta = frame_timer.restart(); const double scroll_speed_key_input = 200.0; @@ -229,11 +245,17 @@ namespace QuickMedia { window_size.x = event.size.width; window_size.y = event.size.height; } else if(event.type == mgl::Event::KeyPressed) { - if(event.key.code == mgl::Keyboard::Up || (event.key.control && event.key.code == mgl::Keyboard::K)) + if(is_key_scroll_up(event.key)) up_pressed = true; - if(event.key.code == mgl::Keyboard::Down || (event.key.control && event.key.code == mgl::Keyboard::J)) + if(is_key_scroll_down(event.key)) down_pressed = true; + if(is_key_previous_chapter(event.key)) + return ImageViewerAction::PREVIOUS_CHAPTER; + + if(is_key_next_chapter(event.key)) + return ImageViewerAction::NEXT_CHAPTER; + if(event.key.code == mgl::Keyboard::Escape) return ImageViewerAction::RETURN; @@ -243,9 +265,9 @@ namespace QuickMedia { if(event.key.code == mgl::Keyboard::F) *fit_image_to_window = !*fit_image_to_window; } else if(event.type == mgl::Event::KeyReleased) { - if(event.key.code == mgl::Keyboard::Up || (event.key.control && event.key.code == mgl::Keyboard::K)) + if(is_key_scroll_up(event.key)) up_pressed = false; - if(event.key.code == mgl::Keyboard::Down || (event.key.control && event.key.code == mgl::Keyboard::J)) + if(is_key_scroll_down(event.key)) down_pressed = false; } else if(event.type == mgl::Event::MouseWheelScrolled/* && event.mouse_wheel_scroll.wheel == mgl::Mouse::VerticalWheel*/) { scroll_speed += scroll_speed_mouse_wheel * event.mouse_wheel_scroll.delta * frame_delta; |