diff options
-rw-r--r-- | DOCS/man/lua.rst | 6 | ||||
-rw-r--r-- | player/lua/console.lua | 10 |
2 files changed, 11 insertions, 5 deletions
diff --git a/DOCS/man/lua.rst b/DOCS/man/lua.rst index 6a58cba54d..e8065d9a1a 100644 --- a/DOCS/man/lua.rst +++ b/DOCS/man/lua.rst @@ -970,8 +970,9 @@ REPL. ``submit`` The callback invoked when the user presses Enter. The first argument is - the 1-based index of the selected item. You can close the console from - within the callback by calling ``input.terminate()``. + the 1-based index of the selected item. Unlike with ``input.get()``, the + console is automatically closed on submit without having to call + ``input.terminate()``. Example: @@ -984,7 +985,6 @@ REPL. }, submit = function (id) mp.commandv("playlist-play-index", id - 1) - input.terminate() end, }) diff --git a/player/lua/console.lua b/player/lua/console.lua index 30e777e972..26c2e27988 100644 --- a/player/lua/console.lua +++ b/player/lua/console.lua @@ -798,9 +798,15 @@ function handle_enter() history_add(line) end - if input_caller then + if selectable_items then + if #matches > 0 then + mp.commandv('script-message-to', input_caller, 'input-event', 'submit', + utils.format_json({matches[selected_match].index})) + end + set_active(false) + elseif input_caller then mp.commandv('script-message-to', input_caller, 'input-event', 'submit', - utils.format_json({selectable_items and matches[selected_match].index or line})) + utils.format_json({line})) else -- match "help [<text>]", return <text> or "", strip all whitespace local help = line:match('^%s*help%s+(.-)%s*$') or |