diff --git a/Telegram/SourceFiles/boxes/peer_list_controllers.cpp b/Telegram/SourceFiles/boxes/peer_list_controllers.cpp index b0ca9d87b..62271ef8c 100644 --- a/Telegram/SourceFiles/boxes/peer_list_controllers.cpp +++ b/Telegram/SourceFiles/boxes/peer_list_controllers.cpp @@ -910,7 +910,12 @@ void ChooseRecipientBoxController::prepareViewHook() { } void ChooseRecipientBoxController::rowClicked(not_null row) { - _callback(row->peer()); + auto weak = base::make_weak(this); + auto callback = std::move(_callback); + callback(row->peer()); + if (weak) { + _callback = std::move(callback); + } } auto ChooseRecipientBoxController::createRow( diff --git a/Telegram/SourceFiles/boxes/peer_list_controllers.h b/Telegram/SourceFiles/boxes/peer_list_controllers.h index 4c8227204..5c66d5686 100644 --- a/Telegram/SourceFiles/boxes/peer_list_controllers.h +++ b/Telegram/SourceFiles/boxes/peer_list_controllers.h @@ -198,7 +198,9 @@ private: }; -class AddBotToGroupBoxController : public ChatsListBoxController, public base::has_weak_ptr { +class AddBotToGroupBoxController + : public ChatsListBoxController + , public base::has_weak_ptr { public: static void Start(not_null bot); @@ -227,7 +229,9 @@ private: }; -class ChooseRecipientBoxController : public ChatsListBoxController { +class ChooseRecipientBoxController + : public ChatsListBoxController + , public base::has_weak_ptr { public: ChooseRecipientBoxController( FnMut)> callback);