Composição IME: Tecla Enter dispara envio de mensagem em vez de confirmar entrada


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:

  1. Nível do IME: Enter = confirmar a entrada atual (composição)
  2. 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.

1 curtida

Um usuário em minha comunidade postou um Userscript que resolveu isso, pode ser útil: 私聊聊天优化建议 - #17 by Haleclipse - 运营反馈 - LINUX DO

Isso ajuda a alterar a preferência para “enviar por Ctrl + Enter”?

Aqui no Meta você pode encontrar isso em Discourse Meta - The Official Support Forum for Discourse

1 curtida

Isso deve corrigir o problema assim que for mesclado:

Observe que tentei no google.com também, por exemplo, e a primeira opção não funcionará com enter, você precisa usar 1 para que funcione.

2 curtidas

Este tópico foi fechado automaticamente 7 dias após a última resposta. Novas respostas não são mais permitidas.