summaryrefslogtreecommitdiffstats
path: root/DOCS
diff options
context:
space:
mode:
Diffstat (limited to 'DOCS')
-rw-r--r--DOCS/client-api-changes.rst5
-rw-r--r--DOCS/client_api_examples/qtexample.cpp4
-rw-r--r--DOCS/client_api_examples/simple.c1
-rw-r--r--DOCS/man/options.rst18
4 files changed, 28 insertions, 0 deletions
diff --git a/DOCS/client-api-changes.rst b/DOCS/client-api-changes.rst
index b689921e48..be6d86cd46 100644
--- a/DOCS/client-api-changes.rst
+++ b/DOCS/client-api-changes.rst
@@ -25,7 +25,12 @@ API changes
::
+ 1.5 - change in X11 and "--wid" behavior again. The previous change didn't
+ work as expected, and now the behavior can be explicitly controlled
+ with the "input-x11-keyboard" option. This is only a temporary
+ measure until XEmbed is implemented and confirmed working.
1.4 - subtle change in X11 and "--wid" behavior
+ (this change was added to 0.5.2, and broke some things, see #1090)
--- mpv 0.5.0 is released ---
1.3 - add MPV_MAKE_VERSION()
1.2 - remove "stream-time-pos" property (no replacement)
diff --git a/DOCS/client_api_examples/qtexample.cpp b/DOCS/client_api_examples/qtexample.cpp
index 39dc1fd1d4..84b1102055 100644
--- a/DOCS/client_api_examples/qtexample.cpp
+++ b/DOCS/client_api_examples/qtexample.cpp
@@ -53,6 +53,10 @@ MainWindow::MainWindow(QWidget *parent) :
// mpv as backend would implement its own key bindings.
mpv_set_option_string(mpv, "input-default-bindings", "yes");
+ // Enable keyboard input on the X11 window. For the messy details, see
+ // --input-x11-keyboard on the manpage.
+ mpv_set_option_string(mpv, "input-x11-keyboard", "yes");
+
// Let us receive property change events with MPV_EVENT_PROPERTY_CHANGE if
// this property changes.
mpv_observe_property(mpv, 0, "time-pos", MPV_FORMAT_DOUBLE);
diff --git a/DOCS/client_api_examples/simple.c b/DOCS/client_api_examples/simple.c
index d3a4c78c26..6dbc40506a 100644
--- a/DOCS/client_api_examples/simple.c
+++ b/DOCS/client_api_examples/simple.c
@@ -21,6 +21,7 @@ int main(int argc, char *argv[])
// Enable default key bindings, so the user can actually interact with
// the player (and e.g. close the window).
check_error(mpv_set_option_string(ctx, "input-default-bindings", "yes"));
+ mpv_set_option_string(ctx, "input-x11-keyboard", "yes");
int val = 1;
check_error(mpv_set_option(ctx, "osc", MPV_FORMAT_FLAG, &val));
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
---