Há um bug ao usar um Editor de Método de Entrada (IME) chinês para digitar caracteres em inglês (por exemplo, digitar palavras sem desativar o IME). Normalmente, pressionar Enter significa “não selecionar nenhum candidato e inserir diretamente o conteúdo no buffer”. No entanto, na interface de chat, isso é interpretado como “enviar mensagem”, causando este bug.
Comportamento Esperado:
- O usuário digita letras em inglês usando o IME chinês (por exemplo, digitando “hello”)
- O IME exibe a lista de palavras candidatas
- O usuário pressiona Enter, esperando: confirmar as letras digitadas originais sem selecionar nenhum candidato
Comportamento Atual:
- A tecla Enter é capturada pela interface de chat, acionando diretamente a função “enviar mensagem”
- Isso faz com que o conteúdo do buffer do IME seja enviado incorretamente, ou envia uma mensagem incompleta
Causa Raiz:
Este é um conflito de atalho de teclado entre dois níveis:
- Nível do IME: Enter = confirmar a entrada atual (composição)
- Nível da Aplicação: Enter = enviar mensagem
O aplicativo de chat não está lidando adequadamente com o “estado de composição” do IME, fazendo com que ele intercepte o evento da tecla Enter enquanto o IME ainda está processando a entrada.
