summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--video/out/x11_common.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/video/out/x11_common.c b/video/out/x11_common.c
index 5ae71eda70..0da342163c 100644
--- a/video/out/x11_common.c
+++ b/video/out/x11_common.c
@@ -455,6 +455,7 @@ int vo_x11_init(struct vo *vo)
if (!x11->display) {
mp_msg(MSGT_VO, MSGL_ERR,
"vo: couldn't open the X11 display (%s)!\n", dispName);
+
talloc_free(x11);
vo->x11 = NULL;
return 0;
@@ -469,6 +470,9 @@ int vo_x11_init(struct vo *vo)
}
x11->xim = XOpenIM(x11->display, NULL, NULL, NULL);
+ if (!x11->xim)
+ mp_msg(MSGT_VO, MSGL_WARN,
+ "x11: XOpenIM() failed. Unicode input will not work.\n");
init_atoms(vo->x11);
@@ -982,11 +986,13 @@ static void vo_x11_create_window(struct vo *vo, XVisualInfo *vis, int x, int y,
x11->mouse_cursor_hidden = false;
vo_set_cursor_hidden(vo, true);
}
- x11->xic = XCreateIC(x11->xim,
- XNInputStyle, XIMPreeditNone | XIMStatusNone,
- XNClientWindow, x11->window,
- XNFocusWindow, x11->window,
- NULL);
+ if (x11->xim) {
+ x11->xic = XCreateIC(x11->xim,
+ XNInputStyle, XIMPreeditNone | XIMStatusNone,
+ XNClientWindow, x11->window,
+ XNFocusWindow, x11->window,
+ NULL);
+ }
vo_x11_update_window_title(vo);
}