winit/src/platform/linux/x11
Francesca Frangipane 09c809003b
x11: Overhaul XIM code (#451)
Fixes #195
Fixes #277
Fixes #455

* Read `XMODIFIERS` explicitly/directly instead of calling `XSetLocaleModifiers` with an
empty string. This is useful for debugging purposes, and more clear to read and handle.
* Fallback to local input method if the one specified in `XMODIFIERS` is later closed on the
server end (i.e. if ibus/fcitx is terminated). Previously, that would cause the event loop
to freeze and usually also segfault.
* If using the fallback input method, respond to the `XMODIFIERS` input method later
becoming available. This means that the input method restarting is handled, and that even if
the program was started while ibus/fcitx/etc. was unavailable, it will start using it as
soon as it becomes available.
* Only one input method is opened for the whole event loop, with each window having its own
input context.
* IME works completely out of the box now, no longer requiring application developers to
call `setlocale` or `XSetLocaleModifiers`.
* Detailed error messages are provided if no input method could be opened. However, no
information is provided to the user if their intended `XMODIFIERS` input method failed to
open but the fallbacks (which will ostensibly always succeed) succeeded; in my opinion, this
is something that is best filled by adding a logging feature to winit.
2018-04-10 22:18:30 -04:00
..
ime x11: Overhaul XIM code (#451) 2018-04-10 22:18:30 -04:00
dnd.rs x11: Send window maximization hints correctly (#363) 2017-12-15 14:37:09 -05:00
events.rs x11: Support numpad arrows/Home/End/PageUp/PageDown/Insert/Delete (#396) 2018-03-23 10:36:04 +01:00
ffi.rs Move fullscreen modes to not touch physical resolutions (#270) 2017-09-07 10:33:46 +02:00
mod.rs x11: Overhaul XIM code (#451) 2018-04-10 22:18:30 -04:00
monitor.rs x11: Support XRandR versions older than 1.5 (#394) 2018-02-03 11:18:51 +01:00
util.rs x11: Overhaul XIM code (#451) 2018-04-10 22:18:30 -04:00
window.rs x11: More robust geometry calculations (#438) 2018-04-07 15:36:10 -04:00
xdisplay.rs x11: Support XRandR versions older than 1.5 (#394) 2018-02-03 11:18:51 +01:00