From 91e5123ff0b1ae0249c6bfaa9769109cc5fa61d7 Mon Sep 17 00:00:00 2001 From: weijiuqiao Date: Sun, 2 Oct 2022 17:01:13 +0800 Subject: [PATCH] Chinese keyboard: character level deletion apply to the last 2 chars --- frontend/ui/data/keyboardlayouts/zh_ime.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frontend/ui/data/keyboardlayouts/zh_ime.lua b/frontend/ui/data/keyboardlayouts/zh_ime.lua index 57c326a47..10aa32871 100644 --- a/frontend/ui/data/keyboardlayouts/zh_ime.lua +++ b/frontend/ui/data/keyboardlayouts/zh_ime.lua @@ -12,7 +12,7 @@ local function binarysearch( tbl, value, fcompval, reversed ) iMid = math.floor( (iStart+iEnd)/2 ) local value2 = fcompval( tbl[iMid] ) if value == value2 then - if iMid == 0 or fcompval( tbl[iMid-1] ) ~= value then + if iMid == 1 or fcompval( tbl[iMid-1] ) ~= value then return iMid end iEnd = iMid - 1 @@ -313,6 +313,11 @@ function IME:wrappedAddChars(inputbox, char) if #imex.code > 0 then imex.candi = {} imex.char = "" + local previous_imex = _stack[#_stack-1] + if previous_imex then + previous_imex.candi = {} + previous_imex.char = "" + end self:refreshHintChars(inputbox) self:clear_stack() else