summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-03-11 11:52:13 +0100
committerDiogo Franco (Kovensky) <diogomfranco@gmail.com>2015-03-15 20:06:28 +0900
commit50b74bf4079b0c519ea5d80238d1fff033180e70 (patch)
treedf148d76c634a08331a44f46180c94b4590a45fa
parent414cdc9da6fa7c307b2f13eea207cefa1c9bfe75 (diff)
downloadmpv-50b74bf4079b0c519ea5d80238d1fff033180e70.tar.bz2
mpv-50b74bf4079b0c519ea5d80238d1fff033180e70.tar.xz
x11: ignore mouse enter/leave events due to pointer grab
If you click on a window that doesn't have a focus, a LeaveNotify followed by a EnterNotify event can be generated. The former will have mode set to NotifyGrab, the latter to NotifyUngrab. This will make the player think the mouse left the window, even though this is not the case. Ignore these and only react to those with mode set to NotifyNormal. Probably fixes #1672, and some other strange issues on some WMs. (cherry picked from commit 30860f7b1075d04b861e38cac72a6b1a2c951f6e)
-rw-r--r--video/out/x11_common.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/video/out/x11_common.c b/video/out/x11_common.c
index a63350900a..d6988abc47 100644
--- a/video/out/x11_common.c
+++ b/video/out/x11_common.c
@@ -931,6 +931,8 @@ int vo_x11_check_events(struct vo *vo)
x11->win_drag_button1_down = false;
break;
case LeaveNotify:
+ if (Event.xcrossing.mode != NotifyNormal)
+ break;
x11->win_drag_button1_down = false;
mp_input_put_key(vo->input_ctx, MP_KEY_MOUSE_LEAVE);
break;