diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index f5ec69fa70..b8a243a202 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -815,6 +815,11 @@ void HistoryWidget::initVoiceRecordBar() { updateSendButtonType(); }, lifetime()); + _voiceRecordBar->lockViewportEvents( + ) | rpl::start_with_next([=](not_null e) { + _scroll->viewportEvent(e); + }, lifetime()); + _voiceRecordBar->hideFast(); } diff --git a/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.cpp b/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.cpp index 5f440dc477..76ba6c1600 100644 --- a/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.cpp +++ b/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.cpp @@ -2122,6 +2122,10 @@ rpl::producer ComposeControls::lockShowStarts() const { return _voiceRecordBar->lockShowStarts(); } +rpl::producer> ComposeControls::viewportEvents() const { + return _voiceRecordBar->lockViewportEvents(); +} + bool ComposeControls::isRecording() const { return _voiceRecordBar->isRecording(); } diff --git a/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.h b/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.h index 4da785239e..8ca65f62b8 100644 --- a/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.h +++ b/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.h @@ -120,6 +120,7 @@ public: [[nodiscard]] rpl::producer> keyEvents() const; [[nodiscard]] rpl::producer inlineResultChosen() const; [[nodiscard]] rpl::producer sendActionUpdates() const; + [[nodiscard]] rpl::producer> viewportEvents() const; using MimeDataHook = Fn data, diff --git a/Telegram/SourceFiles/history/view/controls/history_view_voice_record_bar.cpp b/Telegram/SourceFiles/history/view/controls/history_view_voice_record_bar.cpp index c8339467a4..143ba1b11a 100644 --- a/Telegram/SourceFiles/history/view/controls/history_view_voice_record_bar.cpp +++ b/Telegram/SourceFiles/history/view/controls/history_view_voice_record_bar.cpp @@ -1433,6 +1433,13 @@ rpl::producer VoiceRecordBar::lockShowStarts() const { return _lockShowing.changes(); } +rpl::producer> VoiceRecordBar::lockViewportEvents() const { + return _lock->events( + ) | rpl::filter([=](not_null e) { + return e->type() == QEvent::Wheel; + }); +} + rpl::producer<> VoiceRecordBar::updateSendButtonTypeRequests() const { return _listenChanges.events(); } diff --git a/Telegram/SourceFiles/history/view/controls/history_view_voice_record_bar.h b/Telegram/SourceFiles/history/view/controls/history_view_voice_record_bar.h index f976bafb84..bc96898f5d 100644 --- a/Telegram/SourceFiles/history/view/controls/history_view_voice_record_bar.h +++ b/Telegram/SourceFiles/history/view/controls/history_view_voice_record_bar.h @@ -59,6 +59,7 @@ public: [[nodiscard]] rpl::producer sendVoiceRequests() const; [[nodiscard]] rpl::producer recordingStateChanges() const; [[nodiscard]] rpl::producer lockShowStarts() const; + [[nodiscard]] rpl::producer> lockViewportEvents() const; [[nodiscard]] rpl::producer<> updateSendButtonTypeRequests() const; void requestToSendWithOptions(Api::SendOptions options); diff --git a/Telegram/SourceFiles/history/view/history_view_replies_section.cpp b/Telegram/SourceFiles/history/view/history_view_replies_section.cpp index 47d6aae4f1..1787f399be 100644 --- a/Telegram/SourceFiles/history/view/history_view_replies_section.cpp +++ b/Telegram/SourceFiles/history/view/history_view_replies_section.cpp @@ -531,6 +531,11 @@ void RepliesWidget::setupComposeControls() { updateScrollDownVisibility(); }, lifetime()); + _composeControls->viewportEvents( + ) | rpl::start_with_next([=](not_null e) { + _scroll->viewportEvent(e); + }, lifetime()); + _composeControls->finishAnimating(); } diff --git a/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp b/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp index 723c424c54..484fbd69b5 100644 --- a/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp +++ b/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp @@ -266,6 +266,11 @@ void ScheduledWidget::setupComposeControls() { ) | rpl::start_with_next([=] { updateScrollDownVisibility(); }, lifetime()); + + _composeControls->viewportEvents( + ) | rpl::start_with_next([=](not_null e) { + _scroll->viewportEvent(e); + }, lifetime()); } void ScheduledWidget::chooseAttach() {