diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index ab4aa05ff..af69832b8 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -5645,19 +5645,28 @@ bool HistoryWidget::hasHiddenPinnedMessage(not_null peer) { bool HistoryWidget::switchPinnedHidden(not_null peer, bool hidden) { auto result = false; auto &session = peer->session(); - const auto migrated = peer->migrateFrom(); - const auto top = Data::ResolveTopPinnedId(peer, migrated); - const auto universal = !top - ? int32(0) - : (migrated && !top.channel) - ? (top.msg - ServerMaxMsgId) - : top.msg; - if (universal) { - session.settings().setHiddenPinnedMessageId(peer->id, universal); - session.saveSettingsDelayed(); - result = true; + if (hidden) { + const auto migrated = peer->migrateFrom(); + const auto top = Data::ResolveTopPinnedId(peer, migrated); + const auto universal = !top + ? int32(0) + : (migrated && !top.channel) + ? (top.msg - ServerMaxMsgId) + : top.msg; + if (universal) { + session.settings().setHiddenPinnedMessageId(peer->id, universal); + session.saveSettingsDelayed(); + result = true; + } else { + session.api().requestFullPeer(peer); + } } else { - session.api().requestFullPeer(peer); + const auto hiddenId = session.settings().hiddenPinnedMessageId(peer->id); + if (hiddenId != 0) { + session.settings().setHiddenPinnedMessageId(peer->id, 0); + session.saveSettingsDelayed(); + result = true; + } } return result; } @@ -5673,9 +5682,7 @@ void HistoryWidget::setupPinnedTracker() { void HistoryWidget::checkPinnedBarState() { Expects(_pinnedTracker != nullptr); - const auto hiddenId = _peer->canPinMessages() - ? MsgId(0) - : session().settings().hiddenPinnedMessageId(_peer->id); + const auto hiddenId = session().settings().hiddenPinnedMessageId(_peer->id); const auto currentPinnedId = Data::ResolveTopPinnedId( _peer, _migrated ? _migrated->peer.get() : nullptr); diff --git a/Telegram/SourceFiles/kotato/customboxes/unpin_box.cpp b/Telegram/SourceFiles/kotato/customboxes/unpin_box.cpp index e9cf04117..5c11e22e8 100644 --- a/Telegram/SourceFiles/kotato/customboxes/unpin_box.cpp +++ b/Telegram/SourceFiles/kotato/customboxes/unpin_box.cpp @@ -74,8 +74,8 @@ void UnpinMessageBox::hideMessage() { if (_requestId) return; auto hidden = HistoryWidget::switchPinnedHidden(_peer, true); - // if (hidden) { - // _peer->session().changes().peerUpdated(_peer, Data::PeerUpdate::Flag::PinnedMessage); - // } + if (hidden) { + _peer->session().changes().peerUpdated(_peer, Data::PeerUpdate::Flag::PinnedMessages); + } Ui::hideLayer(); } diff --git a/Telegram/SourceFiles/window/window_peer_menu.cpp b/Telegram/SourceFiles/window/window_peer_menu.cpp index 37ee11a4f..4cc5b9553 100644 --- a/Telegram/SourceFiles/window/window_peer_menu.cpp +++ b/Telegram/SourceFiles/window/window_peer_menu.cpp @@ -799,20 +799,20 @@ void Filler::addTogglesForArchive() { void PeerMenuHidePinnedMessage(not_null peer) { auto hidden = HistoryWidget::switchPinnedHidden(peer, true); - // if (hidden) { - // peer->session().changes().peerUpdated( - // peer, - // Data::PeerUpdate::Flag::PinnedMessage); - // } + if (hidden) { + peer->session().changes().peerUpdated( + peer, + Data::PeerUpdate::Flag::PinnedMessages); + } } void PeerMenuUnhidePinnedMessage(not_null peer) { auto unhidden = HistoryWidget::switchPinnedHidden(peer, false); - // if (unhidden) { - // peer->session().changes().peerUpdated( - // peer, - // Data::PeerUpdate::Flag::PinnedMessage); - // } + if (unhidden) { + peer->session().changes().peerUpdated( + peer, + Data::PeerUpdate::Flag::PinnedMessages); + } } void PeerMenuExportChat(not_null peer) {