summary refs log tree commit diff
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/main.cpp b/src/main.cpp

index b9134317..5a2cb413 100644 --- a/src/main.cpp +++ b/src/main.cpp
@@ -277,22 +277,28 @@ main(int argc, char *argv[]) w.activateWindow(); }); + // It seems like handling the message in a blocking manner is a no-go. I have no idea how to + // fix that, so just use a queued connection for now... (ASAN does not cooperate and just + // hides the crash D:) QObject::connect( &app, &SingleApplication::receivedMessage, ChatPage::instance(), - [&](quint32, QByteArray message) { ChatPage::instance()->handleMatrixUri(message); }); + [&](quint32, QByteArray message) { + QString m = QString::fromUtf8(message); + ChatPage::instance()->handleMatrixUri(m); + }, + Qt::QueuedConnection); QMetaObject::Connection uriConnection; if (app.isPrimary() && !matrixUri.isEmpty()) { - uriConnection = - QObject::connect(ChatPage::instance(), - &ChatPage::contentLoaded, - ChatPage::instance(), - [&uriConnection, matrixUri]() { - ChatPage::instance()->handleMatrixUri(matrixUri.toUtf8()); - QObject::disconnect(uriConnection); - }); + uriConnection = QObject::connect(ChatPage::instance(), + &ChatPage::contentLoaded, + ChatPage::instance(), + [&uriConnection, matrixUri]() { + ChatPage::instance()->handleMatrixUri(matrixUri); + QObject::disconnect(uriConnection); + }); } QDesktopServices::setUrlHandler("matrix", ChatPage::instance(), "handleMatrixUri");