diff --git a/Telegram/SourceFiles/dialogs/dialogs_entry.cpp b/Telegram/SourceFiles/dialogs/dialogs_entry.cpp index 1cf2615f3f..a9a707f585 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_entry.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_entry.cpp @@ -63,8 +63,8 @@ Data::Folder *Entry::asFolder() { return _isFolder ? static_cast(this) : nullptr; } -void Entry::pinnedIndexChanged(int was, int now) { - if (session().supportMode()) { +void Entry::pinnedIndexChanged(FilterId filterId, int was, int now) { + if (!filterId && session().supportMode()) { // Force reorder in support mode. _sortKeyInChatList = 0; } @@ -83,15 +83,12 @@ void Entry::cachePinnedIndex(FilterId filterId, int index) { } if (!index) { _pinnedIndex.erase(i); - pinnedIndexChanged(was, index); + } else if (!was) { + _pinnedIndex.emplace(filterId, index); } else { - if (!was) { - _pinnedIndex.emplace(filterId, index); - } else { - i->second = index; - } - pinnedIndexChanged(was, index); + i->second = index; } + pinnedIndexChanged(filterId, was, index); } void Entry::cacheTopPromoted(bool promoted) { diff --git a/Telegram/SourceFiles/dialogs/dialogs_entry.h b/Telegram/SourceFiles/dialogs/dialogs_entry.h index bb4bba3dba..bff8ad2a5a 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_entry.h +++ b/Telegram/SourceFiles/dialogs/dialogs_entry.h @@ -205,7 +205,7 @@ protected: private: virtual void changedChatListPinHook(); - void pinnedIndexChanged(int was, int now); + void pinnedIndexChanged(FilterId filterId, int was, int now); [[nodiscard]] uint64 computeSortPosition(FilterId filterId) const; void setChatListExistence(bool exists);