Implement workaround for combined emoji (#3469)
This commit is contained in:
@@ -106,9 +106,11 @@ namespace {
|
||||
|
||||
for (const auto jsonMessage : jsonMessages)
|
||||
{
|
||||
auto content = jsonMessage.toString().toUtf8();
|
||||
auto content = jsonMessage.toString();
|
||||
content.replace(COMBINED_FIXER, ZERO_WIDTH_JOINER);
|
||||
|
||||
auto message = Communi::IrcMessage::fromData(content, nullptr);
|
||||
auto message =
|
||||
Communi::IrcMessage::fromData(content.toUtf8(), nullptr);
|
||||
|
||||
if (message->command() == "CLEARCHAT")
|
||||
{
|
||||
@@ -365,6 +367,10 @@ void TwitchChannel::sendMessage(const QString &message)
|
||||
// Do last message processing
|
||||
QString parsedMessage = app->emotes->emojis.replaceShortCodes(message);
|
||||
|
||||
// This is to make sure that combined emoji go through properly, see
|
||||
// https://github.com/Chatterino/chatterino2/issues/3384 and
|
||||
// https://mm2pl.github.io/emoji_rfc.pdf for more details
|
||||
parsedMessage.replace(ZERO_WIDTH_JOINER, ESCAPE_TAG);
|
||||
parsedMessage = parsedMessage.simplified();
|
||||
|
||||
if (parsedMessage.isEmpty())
|
||||
|
||||
Reference in New Issue
Block a user