From d25414f211f4473e0a7ab9e0be5fa6d265b7a5b0 Mon Sep 17 00:00:00 2001 From: Mike FABIAN Date: Tue, 25 Feb 2025 11:47:56 +0100 Subject: [PATCH] If an input method transliterates a single character into another single character use the transliterated result for Compose Resolves: https://github.com/mike-fabian/ibus-typing-booster/issues/654 --- engine/hunspell_table.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/engine/hunspell_table.py b/engine/hunspell_table.py index 53b3a486..858c3a86 100644 --- a/engine/hunspell_table.py +++ b/engine/hunspell_table.py @@ -7921,8 +7921,18 @@ def _handle_compose(self, key: itb_util.KeyEvent, add_to_preedit: bool = True) - return True if key.val in (IBus.KEY_BackSpace,): self._typed_compose_sequence.pop() - else: + elif not self._input_mode or len(key.msymbol) > 1: self._typed_compose_sequence.append(key.val) + else: + transliterated_msymbol = self._transliterators[ + self.get_current_imes()[0] + ].transliterate([key.msymbol], + ascii_digits=self._ascii_digits) + if transliterated_msymbol == key.msymbol: + self._typed_compose_sequence.append(key.val) + else: + new_keyval = IBus.unicode_to_keyval(transliterated_msymbol) + self._typed_compose_sequence.append(new_keyval) if not self._typed_compose_sequence: if self._debug_level > 1: LOGGER.debug('Editing made the compose sequence empty.')