From: Daniel Colascione Date: Sun, 23 Mar 2014 10:24:51 +0000 (-0700) Subject: Work around flaky XIM modules X-Git-Tag: emacs-25.0.90~2640^2~344^2~1^2~1 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b27a404396a312f13f3cc9318a427a3a87d33a6c;p=emacs.git Work around flaky XIM modules --- diff --git a/src/ChangeLog b/src/ChangeLog index 1cce3b5c48e..e468197c968 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2014-03-23 Daniel Colascione + + * xfns.c (create_frame_xic): If XCreateIC fails, try again without + XNStatusAttributes; works around flaky XIM modules, apparently. + 2014-03-23 Daniel Colascione * term.c (init_tty): Rearrange condition for clarity; print diff --git a/src/xfns.c b/src/xfns.c index 5dbc7053fd9..de92baa3ce6 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -2021,6 +2021,16 @@ create_frame_xic (struct frame *f) XNStatusAttributes, status_attr, XNPreeditAttributes, preedit_attr, NULL); + + /* Some input methods don't support a status pixel. */ + if (xic == NULL) + xic = XCreateIC (xim, + XNInputStyle, xic_style, + XNClientWindow, FRAME_X_WINDOW (f), + XNFocusWindow, FRAME_X_WINDOW (f), + XNPreeditAttributes, preedit_attr, + NULL); + XFree (preedit_attr); XFree (status_attr); }