X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoresession.cpp;h=9f2105694e9aff80d334a2c6fbacd8a81bde328e;hp=ef3b397b8ae6104655a7f215da5622b7c6be0f3d;hb=a1b29a21c4bf583074931533b7b04ab8b9c693ab;hpb=0a1c1ff4f99a7eb53ff6cdd95ce5d7ac263e77d2 diff --git a/src/core/coresession.cpp b/src/core/coresession.cpp index ef3b397b..9f210569 100644 --- a/src/core/coresession.cpp +++ b/src/core/coresession.cpp @@ -203,7 +203,14 @@ void CoreSession::msgFromClient(BufferInfo bufinfo, QString msg) { // ALL messages coming pass through these functions before going to the GUI. // So this is the perfect place for storing the backlog and log stuff. void CoreSession::recvMessageFromServer(NetworkId networkId, Message::Type type, BufferInfo::Type bufferType, - const QString &target, const QString &text, const QString &sender, Message::Flags flags) { + const QString &target, const QString &text_, const QString &sender, Message::Flags flags) { + + // U+FDD0 and U+FDD1 are special characters for Qt's text engine, specifically they mark the boundaries of + // text frames in a QTextDocument. This might lead to problems in widgets displaying QTextDocuments (such as + // KDE's notifications), hence we remove those just to be safe. + QString text = text_; + text.remove(QChar(0xfdd0)).remove(QChar(0xfdd1)); + _messageQueue << RawMessage(networkId, type, bufferType, target, text, sender, flags); if(!_processMessages) { _processMessages = true;