mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-18 07:07:08 +02:00
Fix a possible crash in Go to Message on macOS.
Fixes #26273. This crash happens with a very deep stack trace that is caused by destroying shared media layer on Go to Message click, which starts destroying Media::ListWidget, which destroys Ui::PopupMenu, which is a window, so when it destructs it triggers a sync repaint of the main window (by a system event), which tries to render the new messages slice, which starts a photo download, which calls an item repaint in Data::Session, and the semi-destroyed Media::ListWidget is still subscribed to the item repaint requests and tries to repaint and crashes there. The fix is to destroy all session-related subscriptions before the PopupMenu.
This commit is contained in:
parent
7877463468
commit
f671897a4d
1 changed files with 2 additions and 1 deletions
|
@ -295,7 +295,6 @@ private:
|
|||
bool _wasSelectedText = false; // was some text selected in current drag action
|
||||
|
||||
const std::unique_ptr<DateBadge> _dateBadge;
|
||||
base::flat_map<not_null<Main::Session*>, rpl::lifetime> _trackedSessions;
|
||||
|
||||
base::unique_qptr<Ui::PopupMenu> _contextMenu;
|
||||
rpl::event_stream<> _checkForHide;
|
||||
|
@ -305,6 +304,8 @@ private:
|
|||
QPoint _trippleClickPoint;
|
||||
crl::time _trippleClickStartTime = 0;
|
||||
|
||||
base::flat_map<not_null<Main::Session*>, rpl::lifetime> _trackedSessions;
|
||||
|
||||
};
|
||||
|
||||
} // namespace Media
|
||||
|
|
Loading…
Add table
Reference in a new issue