diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.cpp index b7ff48f689..85c9483721 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.cpp @@ -1092,7 +1092,9 @@ void AddPermanentLinkBlock( st::inviteLinkJoinedRowPadding )->setClickedCallback([=] { if (!currentLinkFields->link.isEmpty()) { - ShowInviteLinkBox(peer, *currentLinkFields); + show->showBox( + ShowInviteLinkBox(peer, *currentLinkFields), + Ui::LayerOption::KeepOther); } }); @@ -1207,10 +1209,11 @@ void EditLink( using Fields = Ui::InviteLinkFields; const auto done = [=](Fields result) { const auto finish = [=](Api::InviteLink finished) { - if (creating) { - ShowInviteLinkBox(peer, finished); - } if (*box) { + if (creating) { + (*box)->getDelegate()->show( + ShowInviteLinkBox(peer, finished)); + } (*box)->closeBox(); } }; @@ -1292,7 +1295,7 @@ void DeleteLink( Ui::LayerOption::KeepOther); } -void ShowInviteLinkBox( +object_ptr ShowInviteLinkBox( not_null peer, const Api::InviteLink &link) { const auto admin = link.admin; @@ -1332,15 +1335,13 @@ void ShowInviteLinkBox( box->addButton(tr::lng_about_done(), [=] { box->closeBox(); }); }; - Ui::show( - Box( - std::make_unique( - peer, - link.admin, - std::move(data), - Controller::Role::Joined), - std::move(initBox)), - Ui::LayerOption::KeepOther); + return Box( + std::make_unique( + peer, + link.admin, + std::move(data), + Controller::Role::Joined), + std::move(initBox)); } QString PrepareRequestedRowStatus(TimeId date) { diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.h b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.h index 2bb84d05d8..744dfb2667 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.h +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.h @@ -49,7 +49,7 @@ void DeleteLink( not_null admin, const QString &link); -void ShowInviteLinkBox( +[[nodiscard]] object_ptr ShowInviteLinkBox( not_null peer, const Api::InviteLink &link); diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp index 72f796e74a..3db292ce76 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp @@ -542,7 +542,9 @@ void LinksController::appendSlice(const InviteLinksSlice &slice) { } void LinksController::rowClicked(not_null row) { - ShowInviteLinkBox(_peer, static_cast(row.get())->data()); + delegate()->peerListShowBox( + ShowInviteLinkBox(_peer, static_cast(row.get())->data()), + Ui::LayerOption::KeepOther); } void LinksController::rowRightActionClicked(not_null row) {