summaryrefslogtreecommitdiffstats
path: root/DOCS/man
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-09-28 20:11:00 +0200
committerwm4 <wm4@nowhere>2014-09-28 20:11:00 +0200
commit3273db1ef72a9d1ee76ba704ace6c1b1898ab945 (patch)
treed0602014e7e0cfcf8cee335b3a4aee2a1c10e227 /DOCS/man
parentaeaa1767e9f62fd45607c2d5b73253ccf6b3e241 (diff)
downloadmpv-3273db1ef72a9d1ee76ba704ace6c1b1898ab945.tar.bz2
mpv-3273db1ef72a9d1ee76ba704ace6c1b1898ab945.tar.xz
client API, X11: change default keyboard input handling again
Commit 64b7811c tried to do the "right thing" with respect to whether keyboard input should be enabled or not. It turns out that X11 does something stupid by design. All modern toolkits work around this native X11 behavior, but embedding breaks these workarounds. The only way to handle this correctly is the XEmbed protocol. It needs to be supported by the toolkit, and probably also some mpv support. But Qt has inconsistent support for it. In Qt 4, a X11 specific embedding widget was needed. Qt 5.0 doesn't support it at all. Qt 5.1 apparently supports it via QWindow, but if it really does, I couldn't get it to work. So add a hack instead. The new --input-x11-keyboard option controls whether mpv should enable keyboard input on the X11 window or not. In the command line player, it's enabled by default, but in libmpv it's disabled. This hack has the same problem as all previous embedding had: move the mouse outside of the window, and you don't get keyboard input anymore. Likewise, mpv will steal all keyboard input from the parent application as long as the mouse is inside of the mpv window. Also see issue #1090.
Diffstat (limited to 'DOCS/man')
-rw-r--r--DOCS/man/options.rst18
1 files changed, 18 insertions, 0 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index b61484ccfe..b0292ae90c 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -2163,6 +2163,24 @@ Input
Use the right Alt key as Alt Gr to produce special characters. If disabled,
count the right Alt as an Alt modifier key. Enabled by default.
+``--input-x11-keyboard=<yes|no>``
+ Disable all keyboard input on the X11 VO window. Generally useful for
+ embedding only.
+
+ On X11, a sub-window with input enabled grabs all keyboard input as long
+ as it is 1. a child of a focused window, and 2. the mouse is inside of
+ the sub-window. The can steal away all keyboard input from the
+ application embedding the mpv window, and on the other hand, the mpv
+ window will receive no input if the mouse is outside of the mpv window,
+ even though mpv has focus. Modern toolkits work around this weird X11
+ behavior, but naively embedding foreign windows breaks it.
+
+ The only way to handle this reasonably is using the XEmbed protocol, which
+ was designed to solve these problems. But Qt has questionable support, and
+ mpv doesn't implement it yet.
+
+ As a workaround, this option is disabled by default in libmpv. (Note that
+ ``input-default-bindings`` is disabled by default in libmpv as well.)
OSD
---