diff options
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/xfns.c | 10 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 1cce3b5c48e..e468197c968 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,10 @@ 2014-03-23 Daniel Colascione <dancol@dancol.org> + * xfns.c (create_frame_xic): If XCreateIC fails, try again without + XNStatusAttributes; works around flaky XIM modules, apparently. + +2014-03-23 Daniel Colascione <dancol@dancol.org> + * term.c (init_tty): Rearrange condition for clarity; print appropriate diagnostic. 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); } |