From 129d3569099e02c790acf1f9cec13e9815b34ca8 Mon Sep 17 00:00:00 2001 From: John Preston <johnprestonmail@gmail.com> Date: Sat, 4 May 2024 14:36:26 +0400 Subject: [PATCH] Fix scrolling expanded frequent contacts. --- Telegram/SourceFiles/dialogs/ui/dialogs_suggestions.cpp | 5 +++++ Telegram/SourceFiles/dialogs/ui/top_peers_strip.cpp | 4 ++++ Telegram/SourceFiles/dialogs/ui/top_peers_strip.h | 3 +++ 3 files changed, 12 insertions(+) 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<QWheelEvent*> 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<not_null<QWheelEvent*>> 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<not_null<QWheelEvent*>>; + private: struct Entry; struct Layout;