summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-04-18 16:37:27 +0200
committerwm4 <wm4@nowhere>2014-04-18 16:37:27 +0200
commitecb4c08ee2f0f87cc2a3afce1435ea84956936f0 (patch)
treebc55c14eb95acc2179100e825a6deac9976fa89d
parent3b12d0add912ffc1e2f79e5292b5d2d732d07c9c (diff)
downloadmpv-ecb4c08ee2f0f87cc2a3afce1435ea84956936f0.tar.bz2
mpv-ecb4c08ee2f0f87cc2a3afce1435ea84956936f0.tar.xz
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.
-rw-r--r--DOCS/man/en/input.rst6
-rw-r--r--etc/input.conf4
-rw-r--r--input/input.c9
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);