diff options
author | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2010-12-14 21:58:47 +0200 |
---|---|---|
committer | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2010-12-14 22:33:12 +0200 |
commit | 4f610adfc29a2aa2f1159ded016ca4f8960c52e9 (patch) | |
tree | 260307218d658564e8430d8c61a12c14b920f804 /libvo/x11_common.c | |
parent | 2ba074e613d79600023128974ea60a75251480b5 (diff) | |
download | mpv-4f610adfc29a2aa2f1159ded016ca4f8960c52e9.tar.bz2 mpv-4f610adfc29a2aa2f1159ded016ca4f8960c52e9.tar.xz |
libvo: register X11 connection fd in input event system
Register the X11 connection fd in the input system so that
mp_input_get_cmd() can immediately wake up and handle keyboard or
other X events. The callback calls vo_check_events() and tells the
input system to handle any input possibly recorded during that. Before
this was done for vo_xv only; this commit generalizes it to all VOs
that call vo_x11_create_vo_window() - those are hopefully ones that
will handle all X events in check_events().
The callback is only kept registered while the vo is properly
configured. At other times calling check_events() would not clear
pending input and so could lead to a busy loop.
Diffstat (limited to 'libvo/x11_common.c')
-rw-r--r-- | libvo/x11_common.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libvo/x11_common.c b/libvo/x11_common.c index 655b1c69d0..b7fbb72307 100644 --- a/libvo/x11_common.c +++ b/libvo/x11_common.c @@ -1123,6 +1123,7 @@ final: x11->vo_gc = XCreateGC(mDisplay, x11->window, GCForeground, &xgcv); XSync(mDisplay, False); x11->vo_mouse_autohide = 1; + vo->event_fd = ConnectionNumber(x11->display); } void vo_x11_clearwindow_part(struct vo *vo, Window vo_window, |