* exwm-xim.el (exwm-xim--handle-forward-event-request): exwm-xim
enforces `input-method-use-echo-area' but this breaks some input
methods. This change clear garbage printed by such input methods.
* exwm-input.el (exwm-input--grab-global-prefix-keys)
(exwm-input--fake-key):
* exwm-xim.el (exwm-xim--handle-forward-event-request): X11 allows
multiple combinations of KEYSYM-MODIFIERS to generate a same
KEYSYM, thus the result of an Emacs event to KEYSYM-MODIFIERS
conversion is not necessarily unique. Previously the result of
`xcb:keysyms:event->keysym' is misused as the modifiers returned is
actually the ones should be consumed.
* exwm-xim.el (exwm-xim--handle-forward-event-request): Factored out
from `exwm-xim--on-request' to make auto commit work. With input
methods providing candidates the first candidate can be implicitly
selected if no further matching is possible. The last event would be
stored in `unread-command-events' (at least for `quail-input-method')
and should be reused by the input method.
(exwm-xim--on-request): Use it.
; The code is basically refactored from
; https://github.com/ch11ng/exim to get better maintenance.
* exwm-xim.el: New module making Emacs's builtin input methods usable
for interacting with X windows.
* exwm-core.el (exwm--intern-atom): New function for intern X11 atoms.
* exwm-input.el (exwm-input--init):
* exwm-manage.el (exwm-manage--init): Use it.