From 5b6503bfed0ea408feb6c40adb1cd778bf73a43d Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 15 Feb 2021 14:58:22 +0400 Subject: [PATCH] Fix auto-delete button when switching between chats. --- Telegram/SourceFiles/history/history_widget.cpp | 2 +- .../history/view/controls/history_view_ttl_button.cpp | 3 ++- .../history/view/controls/history_view_ttl_button.h | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index 5190581a6..98f4a50ed 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -5417,7 +5417,7 @@ void HistoryWidget::checkMessagesTTL() { updateControlsGeometry(); updateControlsVisibility(); } - } else if (!_ttlInfo) { + } else if (!_ttlInfo || _ttlInfo->peer() != _peer) { _ttlInfo = std::make_unique( this, _peer); diff --git a/Telegram/SourceFiles/history/view/controls/history_view_ttl_button.cpp b/Telegram/SourceFiles/history/view/controls/history_view_ttl_button.cpp index 987638687..841fffb48 100644 --- a/Telegram/SourceFiles/history/view/controls/history_view_ttl_button.cpp +++ b/Telegram/SourceFiles/history/view/controls/history_view_ttl_button.cpp @@ -92,7 +92,8 @@ void AutoDeleteSettingsBox( } TTLButton::TTLButton(not_null parent, not_null peer) -: _button(parent, st::historyMessagesTTL) { +: _peer(peer) +, _button(parent, st::historyMessagesTTL) { _button.setClickedCallback([=] { const auto canEdit = peer->isUser() || (peer->isChat() diff --git a/Telegram/SourceFiles/history/view/controls/history_view_ttl_button.h b/Telegram/SourceFiles/history/view/controls/history_view_ttl_button.h index f1dc37f22..a0b38156b 100644 --- a/Telegram/SourceFiles/history/view/controls/history_view_ttl_button.h +++ b/Telegram/SourceFiles/history/view/controls/history_view_ttl_button.h @@ -23,6 +23,10 @@ class TTLButton final { public: TTLButton(not_null parent, not_null peer); + [[nodiscard]] not_null peer() const { + return _peer; + } + void show(); void hide(); void move(int x, int y); @@ -30,6 +34,7 @@ public: [[nodiscard]] int width() const; private: + const not_null _peer; Ui::IconButton _button; };