Fixed section scrolling above voice recording lock.

This commit is contained in:
23rd 2020-11-22 04:11:52 +03:00 committed by John Preston
parent 5f9e497d38
commit 7b837e5138
7 changed files with 28 additions and 0 deletions

View File

@ -815,6 +815,11 @@ void HistoryWidget::initVoiceRecordBar() {
updateSendButtonType();
}, lifetime());
_voiceRecordBar->lockViewportEvents(
) | rpl::start_with_next([=](not_null<QEvent*> e) {
_scroll->viewportEvent(e);
}, lifetime());
_voiceRecordBar->hideFast();
}

View File

@ -2122,6 +2122,10 @@ rpl::producer<bool> ComposeControls::lockShowStarts() const {
return _voiceRecordBar->lockShowStarts();
}
rpl::producer<not_null<QEvent*>> ComposeControls::viewportEvents() const {
return _voiceRecordBar->lockViewportEvents();
}
bool ComposeControls::isRecording() const {
return _voiceRecordBar->isRecording();
}

View File

@ -120,6 +120,7 @@ public:
[[nodiscard]] rpl::producer<not_null<QKeyEvent*>> keyEvents() const;
[[nodiscard]] rpl::producer<InlineChosen> inlineResultChosen() const;
[[nodiscard]] rpl::producer<SendActionUpdate> sendActionUpdates() const;
[[nodiscard]] rpl::producer<not_null<QEvent*>> viewportEvents() const;
using MimeDataHook = Fn<bool(
not_null<const QMimeData*> data,

View File

@ -1433,6 +1433,13 @@ rpl::producer<bool> VoiceRecordBar::lockShowStarts() const {
return _lockShowing.changes();
}
rpl::producer<not_null<QEvent*>> VoiceRecordBar::lockViewportEvents() const {
return _lock->events(
) | rpl::filter([=](not_null<QEvent*> e) {
return e->type() == QEvent::Wheel;
});
}
rpl::producer<> VoiceRecordBar::updateSendButtonTypeRequests() const {
return _listenChanges.events();
}

View File

@ -59,6 +59,7 @@ public:
[[nodiscard]] rpl::producer<VoiceToSend> sendVoiceRequests() const;
[[nodiscard]] rpl::producer<bool> recordingStateChanges() const;
[[nodiscard]] rpl::producer<bool> lockShowStarts() const;
[[nodiscard]] rpl::producer<not_null<QEvent*>> lockViewportEvents() const;
[[nodiscard]] rpl::producer<> updateSendButtonTypeRequests() const;
void requestToSendWithOptions(Api::SendOptions options);

View File

@ -531,6 +531,11 @@ void RepliesWidget::setupComposeControls() {
updateScrollDownVisibility();
}, lifetime());
_composeControls->viewportEvents(
) | rpl::start_with_next([=](not_null<QEvent*> e) {
_scroll->viewportEvent(e);
}, lifetime());
_composeControls->finishAnimating();
}

View File

@ -266,6 +266,11 @@ void ScheduledWidget::setupComposeControls() {
) | rpl::start_with_next([=] {
updateScrollDownVisibility();
}, lifetime());
_composeControls->viewportEvents(
) | rpl::start_with_next([=](not_null<QEvent*> e) {
_scroll->viewportEvent(e);
}, lifetime());
}
void ScheduledWidget::chooseAttach() {