From 3dcbac8875c000127f76318b53f0170456b01f2d Mon Sep 17 00:00:00 2001 From: Loren Burkholder Date: Sat, 13 Feb 2021 18:59:17 -0500 Subject: [PATCH] Only pass formatted text if it is supported (Linux) --- src/notifications/ManagerLinux.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/notifications/ManagerLinux.cpp b/src/notifications/ManagerLinux.cpp index 70f131c2..44dbb196 100644 --- a/src/notifications/ManagerLinux.cpp +++ b/src/notifications/ManagerLinux.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include "Cache.h" #include "EventAccessors.h" @@ -59,7 +60,14 @@ NotificationsManager::postNotification(const mtx::responses::Notification ¬if const auto sender = cache::displayName( room_id, QString::fromStdString(mtx::accessors::sender(notification.event))); const auto text = utils::event_body(notification.event); - const auto formattedText = cmark_markdown_to_html(text.toStdString().c_str(), text.length(), CMARK_OPT_UNSAFE); + auto formattedText = utils::markdownToHtml(text); + + static QDBusInterface notifyApp("org.freedesktop.Notifications", + "/org/freedesktop/Notifications", + "org.freedesktop.Notifications"); + auto capabilites = notifyApp.call("GetCapabilites"); + if (!capabilites.arguments().contains("body-markup")) + formattedText = QTextDocumentFragment::fromHtml(formattedText).toPlainText(); QVariantMap hints; hints["image-data"] = icon; @@ -86,9 +94,6 @@ NotificationsManager::postNotification(const mtx::responses::Notification ¬if argumentList << hints; // hints argumentList << (int)-1; // timeout in ms - static QDBusInterface notifyApp("org.freedesktop.Notifications", - "/org/freedesktop/Notifications", - "org.freedesktop.Notifications"); QDBusPendingCall call = notifyApp.asyncCallWithArgumentList("Notify", argumentList); auto watcher = new QDBusPendingCallWatcher{call, this}; connect(