From ecb4c08ee2f0f87cc2a3afce1435ea84956936f0 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 18 Apr 2014 16:37:27 +0200 Subject: input: close window when window close button is pressed with --input-test The window close button is usually mapped to the CLOSE_WIN pseudo-key. Until now, --input-test treated this pseudo-key like any other key (like the rest of the input handling code), so you couldn't close the window in this mode. The manpage had silly instructions and warnings how to deal with this. Just always quit when CLOSE_WIN is received, and improve the instructions. --- DOCS/man/en/input.rst | 6 +++--- etc/input.conf | 4 ++-- input/input.c | 9 +++++++++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/DOCS/man/en/input.rst b/DOCS/man/en/input.rst index 36a19e9479..a8c1fc177f 100644 --- a/DOCS/man/en/input.rst +++ b/DOCS/man/en/input.rst @@ -21,10 +21,10 @@ In general, keys can be combined with ``Shift``, ``Ctrl`` and ``Alt``:: **mpv** can be started in input test mode, which displays key bindings and the commands they're bound to on the OSD, instead of executing the commands:: - mpv --input-test --demuxer=rawvideo --demuxer-rawvideo=w=1280:h=720 /dev/zero + mpv --input-test --force-window --idle -(Commands which normally close the player will not work in this mode, and you -must kill **mpv** externally to make it exit.) +(Only closing the window will make **mpv** exit, pressing normal keys will +merely display the binding, even if mapped to quit.) General Input Command Syntax ---------------------------- diff --git a/etc/input.conf b/etc/input.conf index 035ec783bf..42ae0701ce 100644 --- a/etc/input.conf +++ b/etc/input.conf @@ -6,8 +6,8 @@ # Also see mpv --input-cmdlist for other possible options. # The file should be placed in the $HOME/.mpv directory. # -# mpv --input-test --pause dummy.mkv can be used to test which commands keys are -# bound to. +# mpv --input-test --force-window --idle can be used to test which commands +# keys are bound to. # # If you wish to unbind a key, bind it to the 'ignore' command: # KEY ignore diff --git a/input/input.c b/input/input.c index 39644fd723..0d8118d8fe 100644 --- a/input/input.c +++ b/input/input.c @@ -311,6 +311,15 @@ static void append_bind_info(struct input_ctx *ictx, char **pmsg, static mp_cmd_t *handle_test(struct input_ctx *ictx, int code) { + if (code == MP_KEY_CLOSE_WIN) { + MP_WARN(ictx, + "CLOSE_WIN was received. This pseudo key can be remapped too,\n" + "but --input-test will always quit when receiving it.\n"); + const char *args[] = {"quit", NULL}; + mp_cmd_t *res = mp_input_parse_cmd_strv(ictx->log, 0, args, ""); + return res; + } + char *key_buf = mp_input_get_key_combo_name(&code, 1); char *msg = talloc_asprintf(NULL, "Key %s is bound to:\n", key_buf); talloc_free(key_buf); -- cgit v1.2.3