diff --git a/Telegram/SourceFiles/dialogs/ui/dialogs_suggestions.cpp b/Telegram/SourceFiles/dialogs/ui/dialogs_suggestions.cpp index 9909fd036..50362e657 100644 --- a/Telegram/SourceFiles/dialogs/ui/dialogs_suggestions.cpp +++ b/Telegram/SourceFiles/dialogs/ui/dialogs_suggestions.cpp @@ -970,6 +970,11 @@ void Suggestions::setupChats() { _chatsScroll->scrollToY(request.ymin, request.ymax); }, _topPeers->lifetime()); + _topPeers->verticalScrollEvents( + ) | rpl::start_with_next([=](not_null e) { + _chatsScroll->viewportEvent(e); + }, _topPeers->lifetime()); + _chatsScroll->setVisible(_tab.current() == Tab::Chats); } diff --git a/Telegram/SourceFiles/dialogs/ui/top_peers_strip.cpp b/Telegram/SourceFiles/dialogs/ui/top_peers_strip.cpp index d32d32814..f793da346 100644 --- a/Telegram/SourceFiles/dialogs/ui/top_peers_strip.cpp +++ b/Telegram/SourceFiles/dialogs/ui/top_peers_strip.cpp @@ -205,6 +205,10 @@ int TopPeersStrip::resizeGetHeight(int newWidth) { return _strip.y() + _strip.height(); } +rpl::producer> TopPeersStrip::verticalScrollEvents() const { + return _verticalScrollEvents.events(); +} + void TopPeersStrip::stripWheelEvent(QWheelEvent *e) { const auto phase = e->phase(); const auto fullDelta = e->pixelDelta().isNull() diff --git a/Telegram/SourceFiles/dialogs/ui/top_peers_strip.h b/Telegram/SourceFiles/dialogs/ui/top_peers_strip.h index f23b3da11..9894235c6 100644 --- a/Telegram/SourceFiles/dialogs/ui/top_peers_strip.h +++ b/Telegram/SourceFiles/dialogs/ui/top_peers_strip.h @@ -62,6 +62,9 @@ public: void deselectByKeyboard(); bool chooseRow(); + [[nodiscard]] auto verticalScrollEvents() const + -> rpl::producer>; + private: struct Entry; struct Layout;