From c9fdf4308c1ee9e469ba3523f1e848f3e4d8545e Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 23 Nov 2014 10:54:34 +0100 Subject: x11: fix crash with --wid=0 and vo_xv/vo_x11 But seriously, don't use --wid=0, don't use vo_xv, and _especially_ don't use vo_x11. Fixes #1284. --- video/out/x11_common.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/video/out/x11_common.c b/video/out/x11_common.c index b8544ef398..aa1aab1edf 100644 --- a/video/out/x11_common.c +++ b/video/out/x11_common.c @@ -1213,8 +1213,6 @@ static void vo_x11_create_window(struct vo *vo, XVisualInfo *vis, vis->depth, CopyFromParent, vis->visual, xswamask, &xswa); Atom protos[1] = {XA(x11, WM_DELETE_WINDOW)}; XSetWMProtocols(x11->display, x11->window, protos, 1); - x11->f_gc = XCreateGC(x11->display, x11->window, 0, 0); - x11->vo_gc = XCreateGC(x11->display, x11->window, 0, NULL); XSetForeground(x11->display, x11->f_gc, 0); if (x11->mouse_cursor_hidden) { @@ -1351,6 +1349,11 @@ void vo_x11_config_vo_window(struct vo *vo, XVisualInfo *vis, int flags, x11->winrc = geo.win; } + if (!x11->f_gc && !x11->vo_gc) { + x11->f_gc = XCreateGC(x11->display, x11->window, 0, 0); + x11->vo_gc = XCreateGC(x11->display, x11->window, 0, NULL); + } + if (flags & VOFLAG_HIDDEN) return; -- cgit v1.2.3