Commit b6964c210c for ffmpeg

commit b6964c210cea66127ab9a79af7c6f9285cf94dbf
Author: Michael Niedermayer <michael@niedermayer.cc>
Date:   Wed Oct 14 01:05:56 2026 +0200

    ffplay: remember the key that pins a list instead of a chapter list flag

    Assisted-by: Claude

diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index 79125f03ac..34fe21ba8c 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -296,7 +296,6 @@ typedef struct VideoState {
     SDL_AudioDeviceID audio_dev;
     int64_t audio_callback_time;
     ListView *chapter_list;
-    int chapter_pin_requested;

     int subtitle_stream;
     AVStream *subtitle_st;
@@ -374,6 +373,8 @@ static const char *video_codec_name;
 double rdftspeed = 0.02;
 static int64_t cursor_last_shown;
 static int cursor_hidden = 0;
+/* the key that pins a list when it is released, 0 for none */
+static SDL_Keycode list_key;
 static const char **vfilters_list = NULL;
 static int nb_vfilters = 0;
 static char *afilters = NULL;
@@ -3865,7 +3866,7 @@ static void event_loop(VideoState *cur_stream)
                 stream_cycle_channel(cur_stream, AVMEDIA_TYPE_SUBTITLE);
                 break;
             case SDLK_l:
-                cur_stream->chapter_pin_requested = cur_stream->ic->nb_chapters > 0;
+                list_key = cur_stream->ic->nb_chapters > 0 ? SDLK_l : 0;
                 break;
             case SDLK_RETURN:
             case SDLK_KP_ENTER:
@@ -3937,9 +3938,9 @@ static void event_loop(VideoState *cur_stream)
             break;
         case SDL_KEYUP:
             /* on the release of a press made while unpinned, so that the key's own text input does not start the search */
-            if (event.key.keysym.sym == SDLK_l && cur_stream->chapter_pin_requested)
+            if (list_key && event.key.keysym.sym == list_key)
                 chapter_list_pin(cur_stream);
-            cur_stream->chapter_pin_requested = 0;
+            list_key = 0;
             break;
         case SDL_TEXTINPUT:
             if (list_view_pinned(cur_stream->chapter_list))