diff options
author | Daniel Colascione <dancol@dancol.org> | 2014-03-23 03:24:51 -0700 |
---|---|---|
committer | Daniel Colascione <dancol@dancol.org> | 2014-03-23 03:24:51 -0700 |
commit | b27a404396a312f13f3cc9318a427a3a87d33a6c (patch) | |
tree | 78df5ecd4a8542fb43dfbf9c2dbeb1014f6b2729 | |
parent | dfdce7dc1c6876b70ecc5ef8886699d0cf158294 (diff) | |
download | emacs-b27a404396a312f13f3cc9318a427a3a87d33a6c.tar.gz emacs-b27a404396a312f13f3cc9318a427a3a87d33a6c.tar.bz2 emacs-b27a404396a312f13f3cc9318a427a3a87d33a6c.zip |
Work around flaky XIM modules
-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); } |