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 92b1f51461..097504ce5a 100644 --- a/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.cpp +++ b/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.cpp @@ -768,8 +768,10 @@ rpl::producer ComposeControls::editRequests() const { } rpl::producer<> ComposeControls::attachRequests() const { - return _attachToggle->clicks( - ) | rpl::to_empty | rpl::filter([=] { + return rpl::merge( + _attachToggle->clicks() | rpl::to_empty, + _attachRequests.events() + ) | rpl::filter([=] { if (isEditingMessage()) { Ui::show(Box(tr::lng_edit_caption_attach(tr::now))); return false; @@ -1057,6 +1059,11 @@ void ComposeControls::initKeyHandler() { }) | rpl::start_with_next([=](not_null e) { auto keyEvent = static_cast(e.get()); const auto key = keyEvent->key(); + const auto isCtrl = keyEvent->modifiers() == Qt::ControlModifier; + if (key == Qt::Key_O && isCtrl) { + _attachRequests.fire({}); + return; + } if (key == Qt::Key_Up) { if (!isEditingMessage()) { _editLastMessageRequests.fire(std::move(keyEvent)); 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 6570d560e3..fbb2975e89 100644 --- a/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.h +++ b/Telegram/SourceFiles/history/view/controls/history_view_compose_controls.h @@ -296,6 +296,7 @@ private: rpl::event_stream _sendCommandRequests; rpl::event_stream> _scrollKeyEvents; rpl::event_stream> _editLastMessageRequests; + rpl::event_stream<> _attachRequests; TextUpdateEvents _textUpdateEvents = TextUpdateEvents() | TextUpdateEvent::SaveDraft