Closed SundarTM closed 5 years ago
Okay looking at this a bit more, there's something strange happening in our IME handling: our fn replaceCharactersInRange:
is being called twice, first by setMarkedText
and then again by insertText
; and since the actual insertion is handled in replaceCharactersInRange
, that's being called twice as well.
The next step here is to go re-read whatever docs are available on the NSInputClient
protocol, to figure out exactly what the expected behaviour of these two functions is, and update them accordingly.
edit: if someone wants to take this on they're more then welcome; it isn't on the top of my list right now but is definitely a Real Bug, and should be a pretty self-contained fix.
Created PR #368
While Inputting Tamil text with compound letters (கா, கி, etc.), Xi-editor generates additional characters. The rpc log collected shows that xi-mac making redundant duplicate rpc calls for each compound character insertion. This causes extra characters to be left in the text.
Steps to recreate:
Logs: The duplicate calls are marked bold. {"method":"edit","params":{"method":"insert","view_id":"view-id-2","params":{"chars":"க"}}} {"method":"edit","params":{"method":"delete_backward","view_id":"view-id-2","params":[]}} {"method":"edit","params":{"method":"insert","view_id":"view-id-2","params":{"chars":"கா"}}} {"method":"edit","params":{"method":"delete_backward","view_id":"view-id-2","params":[]}} {"method":"edit","params":{"method":"insert","view_id":"view-id-2","params":{"chars":"கா"}}} {"method":"edit","params":{"method":"insert","view_id":"view-id-2","params":{"chars":"க"}}} {"method":"edit","params":{"method":"delete_backward","view_id":"view-id-2","params":[]}} {"method":"edit","params":{"method":"insert","view_id":"view-id-2","params":{"chars":"கி"}}} {"method":"edit","params":{"method":"delete_backward","view_id":"view-id-2","params":[]}} {"method":"edit","params":{"method":"insert","view_id":"view-id-2","params":{"chars":"கி"}}} {"method":"edit","params":{"method":"insert","view_id":"view-id-2","params":{"chars":"த"}}} {"method":"edit","params":{"method":"delete_backward","view_id":"view-id-2","params":[]}} {"method":"edit","params":{"method":"insert","view_id":"view-id-2","params":{"chars":"தம"}}} {"method":"edit","params":{"method":"delete_backward","view_id":"view-id-2","params":[]}} {"method":"edit","params":{"method":"delete_backward","view_id":"view-id-2","params":[]}} {"method":"edit","params":{"method":"insert","view_id":"view-id-2","params":{"chars":"தம்"}}} {"method":"edit","params":{"method":"delete_backward","view_id":"view-id-2","params":[]}} {"method":"edit","params":{"method":"delete_backward","view_id":"view-id-2","params":[]}}
{"method":"edit","params":{"method":"insert","view_id":"view-id-2","params":{"chars":"தம்"}}}