diff --git a/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.cpp b/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.cpp index 189e56652..cc3b347ec 100644 --- a/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.cpp +++ b/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.cpp @@ -449,6 +449,10 @@ void InnerWidget::fill() { Ui::InputField::Mode::MultiLine, tr::lng_channel_earn_balance_placeholder()), st::boxRowPadding); + _focusRequested.events( + ) | rpl::start_with_next([=] { + input->setFocusFast(); + }, input->lifetime()); Ui::AddSkip(container); @@ -942,6 +946,10 @@ void InnerWidget::showFinished() { _showFinished.fire({}); } +void InnerWidget::setInnerFocus() { + _focusRequested.fire({}); +} + not_null InnerWidget::peer() const { return _peer; } diff --git a/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.h b/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.h index 00cf03149..a4a63fda3 100644 --- a/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.h +++ b/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.h @@ -38,6 +38,7 @@ public: [[nodiscard]] rpl::producer showRequests() const; void showFinished(); + void setInnerFocus(); void saveState(not_null memento); void restoreState(not_null memento); @@ -55,6 +56,7 @@ private: rpl::event_stream _scrollToRequests; rpl::event_stream _showRequests; rpl::event_stream<> _showFinished; + rpl::event_stream<> _focusRequested; rpl::event_stream _loaded; }; diff --git a/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_widget.cpp b/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_widget.cpp index fb50472db..b0c38e1ad 100644 --- a/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_widget.cpp +++ b/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_widget.cpp @@ -95,6 +95,10 @@ void Widget::showFinished() { _inner->showFinished(); } +void Widget::setInnerFocus() { + _inner->setInnerFocus(); +} + std::shared_ptr Widget::doCreateMemento() { auto result = std::make_shared(controller()); saveState(result.get()); diff --git a/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_widget.h b/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_widget.h index a79dd897a..287e72338 100644 --- a/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_widget.h +++ b/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_widget.h @@ -47,6 +47,7 @@ public: rpl::producer title() override; rpl::producer desiredShadowVisibility() const override; void showFinished() override; + void setInnerFocus() override; [[nodiscard]] not_null peer() const;