diff --git a/Telegram/SourceFiles/info/info_content_widget.cpp b/Telegram/SourceFiles/info/info_content_widget.cpp index 869beaa97b..cde6fe95c6 100644 --- a/Telegram/SourceFiles/info/info_content_widget.cpp +++ b/Telegram/SourceFiles/info/info_content_widget.cpp @@ -263,6 +263,15 @@ void ContentWidget::setPaintPadding(const style::margins &padding) { _paintPadding = padding; } +void ContentWidget::setViewport( + rpl::producer> &&events) const { + std::move( + events + ) | rpl::start_with_next([=](not_null e) { + _scroll->viewportEvent(e); + }, _scroll->lifetime()); +} + void ContentWidget::saveChanges(FnMut done) { done(); } diff --git a/Telegram/SourceFiles/info/info_content_widget.h b/Telegram/SourceFiles/info/info_content_widget.h index dd3e35aae6..55caddea74 100644 --- a/Telegram/SourceFiles/info/info_content_widget.h +++ b/Telegram/SourceFiles/info/info_content_widget.h @@ -107,6 +107,8 @@ protected: void setPaintPadding(const style::margins &padding); + void setViewport(rpl::producer> &&events) const; + private: RpWidget *doSetInnerWidget(object_ptr inner); void updateControlsGeometry(); diff --git a/Telegram/SourceFiles/info/settings/info_settings_widget.cpp b/Telegram/SourceFiles/info/settings/info_settings_widget.cpp index 3650a31fc1..3c79f5e029 100644 --- a/Telegram/SourceFiles/info/settings/info_settings_widget.cpp +++ b/Telegram/SourceFiles/info/settings/info_settings_widget.cpp @@ -165,6 +165,11 @@ Widget::Widget( }, _inner->lifetime()); setPaintPadding({ 0, _pinnedToTop->minimumHeight(), 0, 0 }); + + setViewport(_pinnedToTop->events( + ) | rpl::filter([](not_null e) { + return e->type() == QEvent::Wheel; + })); } }