Some IMEs change the text at a location that is not adjacent to the cursor. This causes a complex transaction to be created, which ultimately causes a re-render that closes the IME candidate window.
We should change the logic so that simple transactions can cover this sort of change.