mirror of https://github.com/mpv-player/mpv
client API: reasonable behavior if window is closed
Closing the video window sends CLOSE_WIN, which is normally mapped to the "quit" command. The client API normally disables all key bindings, and closing the window does nothing. It's simply left to the application to handle this. This is fine - an embedded window can not be destroyed by user interaction. But sometimes, the window might be destroyed anyway, for example because the containing window is destroyed. If this happens, CLOSE_WIN should better not be ignored. We can't expect client API users to handle this specially (by providing their own input.conf), so provide some fallback for this pseudo key binding. The "quit" command might be too intrusive (not every client necessarily handles "unexpected" MPV_EVENT_SHUTDOWN), but I think it's still reasonable.
This commit is contained in:
parent
a8df0bbf22
commit
3459130e5c
|
@ -460,6 +460,8 @@ static mp_cmd_t *get_cmd_from_keys(struct input_ctx *ictx, char *force_section,
|
|||
|
||||
struct cmd_bind *cmd = find_any_bind_for_key(ictx, force_section, code);
|
||||
if (cmd == NULL) {
|
||||
if (code == MP_KEY_CLOSE_WIN)
|
||||
return mp_input_parse_cmd_strv(ictx->log, (const char*[]){"quit", 0});
|
||||
int msgl = MSGL_WARN;
|
||||
if (code == MP_KEY_MOUSE_MOVE || code == MP_KEY_MOUSE_LEAVE)
|
||||
msgl = MSGL_DEBUG;
|
||||
|
|
Loading…
Reference in New Issue