From 6b5cc165dd29b5513afcb9d79af185fd1a1bbcdd Mon Sep 17 00:00:00 2001 From: Kirill Chibisov Date: Mon, 23 Dec 2024 23:38:46 +0300 Subject: [PATCH] x11: add workaround for disabling IME on gnome GNOME doesn't list that there's a _NONE_ style at all, but it still works if you use it. --- src/changelog/unreleased.md | 4 ++++ src/platform_impl/linux/x11/ime/input_method.rs | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/changelog/unreleased.md b/src/changelog/unreleased.md index aef8dc2e4..5e2c6bf9b 100644 --- a/src/changelog/unreleased.md +++ b/src/changelog/unreleased.md @@ -40,6 +40,10 @@ changelog entry. ## Unreleased +### Added + +- On X11, add a workaround for disabling IME on GNOME. + ### Fixed - On Windows, fixed the event loop not waking on accessibility requests. diff --git a/src/platform_impl/linux/x11/ime/input_method.rs b/src/platform_impl/linux/x11/ime/input_method.rs index b9d3ca710..7f147bf1c 100644 --- a/src/platform_impl/linux/x11/ime/input_method.rs +++ b/src/platform_impl/linux/x11/ime/input_method.rs @@ -81,7 +81,9 @@ impl InputMethod { } let preedit_style = preedit_style.unwrap_or_else(|| none_style.unwrap()); - let none_style = none_style.unwrap_or(preedit_style); + // Always initialize none style even when it's not advertised, since it seems to work + // regardless... + let none_style = none_style.unwrap_or(Style::None(XIM_NONE_STYLE)); Some(InputMethod { im, _name: name, preedit_style, none_style }) }