ibus-anthy/ibus-anthy-HEAD.patch

86 lines
3.2 KiB
Diff

From 137f5d7b0eff9a6e631685a567d06b992146e362 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Thu, 7 Sep 2023 12:57:47 +0900
Subject: [PATCH] engine: Fix to commit selected candidate with OSK
Updating preedit after clicking a candidate on IBus candidate window
has an idle time so committing the preedit has to wait for the idle time.
BUG=rhbz#2237374
---
engine/python2/engine.py | 9 ++++++++-
engine/python3/engine.py | 9 ++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/engine/python2/engine.py b/engine/python2/engine.py
index 80cfa86..42d4dc1 100644
--- a/engine/python2/engine.py
+++ b/engine/python2/engine.py
@@ -154,6 +154,7 @@ class Engine(IBus.EngineSimple):
# IBus lookup window prior to the preedit and selecting a candidate
# causes the commmit instead of the selection.
self.__osk_mode = False
+ self.__selected_preedit_commit = False
if hasattr(IBus, 'InputPurpose'):
self.__has_input_purpose = True
try:
@@ -812,7 +813,10 @@ class Engine(IBus.EngineSimple):
prev_cursor_pos = self.__cursor_pos
self.__on_key_number(keyval)
if self.__osk_mode and prev_cursor_pos == self.__cursor_pos:
- self.__on_key_return()
+ if self.__idle_id != 0:
+ self.__selected_preedit_commit = True
+ else:
+ self.__on_key_return()
def __commit_string(self, text):
self.__reset()
@@ -1328,6 +1332,9 @@ class Engine(IBus.EngineSimple):
else:
self.__update_convert_chars()
self.__idle_id = 0
+ if self.__osk_mode and self.__selected_preedit_commit:
+ self.__on_key_return()
+ self.__selected_preedit_commit = False
def __on_key_return(self):
if self.__preedit_ja_string.is_empty():
diff --git a/engine/python3/engine.py b/engine/python3/engine.py
index 7c0d283..4b50a01 100644
--- a/engine/python3/engine.py
+++ b/engine/python3/engine.py
@@ -155,6 +155,7 @@ class Engine(IBus.EngineSimple):
# IBus lookup window prior to the preedit and selecting a candidate
# causes the commmit instead of the selection.
self.__osk_mode = False
+ self.__selected_preedit_commit = False
if hasattr(IBus, 'InputPurpose'):
self.__has_input_purpose = True
try:
@@ -807,7 +808,10 @@ class Engine(IBus.EngineSimple):
prev_cursor_pos = self.__cursor_pos
self.__on_key_number(keyval)
if self.__osk_mode and prev_cursor_pos == self.__cursor_pos:
- self.__on_key_return()
+ if self.__idle_id != 0:
+ self.__selected_preedit_commit = True
+ else:
+ self.__on_key_return()
def __commit_string(self, text):
self.__reset()
@@ -1323,6 +1327,9 @@ class Engine(IBus.EngineSimple):
else:
self.__update_convert_chars()
self.__idle_id = 0
+ if self.__osk_mode and self.__selected_preedit_commit:
+ self.__on_key_return()
+ self.__selected_preedit_commit = False
def __on_key_return(self):
if self.__preedit_ja_string.is_empty():
--
2.41.0