From 74b91b6e40c12f91d8e904a8ebc051a71fca54ad Mon Sep 17 00:00:00 2001 From: Gaelle Braud Date: Wed, 15 Apr 2026 10:38:30 +0200 Subject: [PATCH 1/2] Defer ChatProxy::invalidate() to avoid accessibility crash on macOS (QTBUG-95764) --- Linphone/core/chat/ChatProxy.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Linphone/core/chat/ChatProxy.cpp b/Linphone/core/chat/ChatProxy.cpp index 9266e4b20..3d4cb462f 100644 --- a/Linphone/core/chat/ChatProxy.cpp +++ b/Linphone/core/chat/ChatProxy.cpp @@ -23,6 +23,8 @@ #include "ChatList.hpp" #include "core/App.hpp" +#include + DEFINE_ABSTRACT_OBJECT(ChatProxy) ChatProxy::ChatProxy(QObject *parent) { @@ -50,7 +52,8 @@ void ChatProxy::setSourceModel(QAbstractItemModel *model) { emit chatAdded(new ChatGui(chatCore)); } }); - connect(newChatList, &ChatList::dataChanged, this, [this] { invalidate(); }); + connect(newChatList, &ChatList::dataChanged, this, + [this] { QTimer::singleShot(0, this, [this] { invalidate(); }); }); newChatList->lUpdate(); } QSortFilterProxyModel::setSourceModel(newChatList); From cd787ccf4bcb6ed93d9c64ddbc833a8918fc45da Mon Sep 17 00:00:00 2001 From: Gaelle Braud Date: Wed, 15 Apr 2026 10:45:27 +0200 Subject: [PATCH 2/2] Filter out chatrooms in incomplete states from chat list --- Linphone/core/chat/ChatList.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Linphone/core/chat/ChatList.cpp b/Linphone/core/chat/ChatList.cpp index 455b724d9..7516a4ac3 100644 --- a/Linphone/core/chat/ChatList.cpp +++ b/Linphone/core/chat/ChatList.cpp @@ -125,6 +125,13 @@ void ChatList::setSelf(QSharedPointer me) { } auto linphoneChatRooms = currentAccount->filterChatRooms(Utils::appStringToCoreString(mFilter)); for (auto it : linphoneChatRooms) { + auto state = it->getState(); + if (state == linphone::ChatRoom::State::CreationFailed || + state == linphone::ChatRoom::State::CreationPending || + state == linphone::ChatRoom::State::TerminationPending || + state == linphone::ChatRoom::State::Instantiated) { + continue; + } auto model = createChatCore(it); chats->push_back(model); }