Always send a done after commit for text input v3.
In Gtk's text-input-v3 implementation it expect done to update the client serial after every commit. Though it is unclear whether this is a protocol requirements, do the same thing like mutter for more compatiblity, especially Gtk3 is in EOL not likely to be patched any time soon.
To do so, we will need to keep track of the last active preedit, otherwise only send_done() will clear the preedit.
Relevant code in Gtk/Mutter:
Edited by Xuetian Weng