From f6e99ddf4c14339017a83044b77c1a0dbd064a06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Dzi=C4=99giel?= Date: Tue, 9 Dec 2025 21:54:31 +0100 Subject: [PATCH] clapper-app: Advance frame with "E" key --- src/bin/clapper-app/clapper-app-window.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/bin/clapper-app/clapper-app-window.c b/src/bin/clapper-app/clapper-app-window.c index 392a60ae..19a4c5ea 100644 --- a/src/bin/clapper-app/clapper-app-window.c +++ b/src/bin/clapper-app/clapper-app-window.c @@ -883,6 +883,18 @@ _handle_speed_key_press (ClapperAppWindow *self, gboolean forward) (forward) ? "av.speed-up" : "av.speed-down", NULL); } +static void +_handle_advance_frame_key_press (ClapperAppWindow *self) +{ + ClapperPlayer *player = clapper_gtk_av_get_player ( + CLAPPER_GTK_AV_CAST (self->video)); + ClapperPlayerState state = clapper_player_get_state (player); + + /* Do not try to advance frame when stopped or buffering */ + if (state >= CLAPPER_PLAYER_STATE_PAUSED) + clapper_player_advance_frame (player); +} + static inline void _handle_progression_key_press (ClapperAppWindow *self) { @@ -939,6 +951,10 @@ key_pressed_cb (GtkEventControllerKey *controller, guint keyval, if ((state & GDK_MODIFIER_MASK) == 0) _handle_seek_key_press (self, TRUE); break; + case GDK_KEY_e: + if ((state & GDK_MODIFIER_MASK) == 0) + _handle_advance_frame_key_press (self); + break; case GDK_KEY_space: case GDK_KEY_k: if (!self->key_held && (state & GDK_MODIFIER_MASK) == 0)