mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-16 22:27:20 +02:00
Fix Ctrl+Up reply in topics / comments.
This commit is contained in:
parent
275327c789
commit
adc536b81d
4 changed files with 23 additions and 11 deletions
|
@ -16,6 +16,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "api/api_transcribes.h"
|
||||
#include "api/api_who_reacted.h"
|
||||
#include "api/api_toggling_media.h" // Api::ToggleFavedSticker
|
||||
#include "base/qt/qt_key_modifiers.h"
|
||||
#include "base/unixtime.h"
|
||||
#include "history/view/history_view_list_widget.h"
|
||||
#include "history/view/history_view_cursor_state.h"
|
||||
|
@ -636,7 +637,7 @@ bool AddReplyToMessageAction(
|
|||
.messageId = itemId,
|
||||
.quote = quote.text,
|
||||
.quoteOffset = quote.offset,
|
||||
});
|
||||
}, base::IsCtrlPressed());
|
||||
}, &st::menuIconReply);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -3904,12 +3904,15 @@ bool ListWidget::lastMessageEditRequestNotify() const {
|
|||
}
|
||||
}
|
||||
|
||||
rpl::producer<FullReplyTo> ListWidget::replyToMessageRequested() const {
|
||||
auto ListWidget::replyToMessageRequested() const
|
||||
-> rpl::producer<ReplyToMessageRequest> {
|
||||
return _requestedToReplyToMessage.events();
|
||||
}
|
||||
|
||||
void ListWidget::replyToMessageRequestNotify(FullReplyTo id) {
|
||||
_requestedToReplyToMessage.fire(std::move(id));
|
||||
void ListWidget::replyToMessageRequestNotify(
|
||||
FullReplyTo to,
|
||||
bool forceAnotherChat) {
|
||||
_requestedToReplyToMessage.fire({ std::move(to), forceAnotherChat });
|
||||
}
|
||||
|
||||
rpl::producer<FullMsgId> ListWidget::readMessageRequested() const {
|
||||
|
|
|
@ -286,11 +286,18 @@ public:
|
|||
QPoint tooltipPos() const override;
|
||||
bool tooltipWindowActive() const override;
|
||||
|
||||
struct ReplyToMessageRequest {
|
||||
FullReplyTo to;
|
||||
bool forceAnotherChat = false;
|
||||
};
|
||||
[[nodiscard]] rpl::producer<FullMsgId> editMessageRequested() const;
|
||||
void editMessageRequestNotify(FullMsgId item) const;
|
||||
[[nodiscard]] bool lastMessageEditRequestNotify() const;
|
||||
[[nodiscard]] rpl::producer<FullReplyTo> replyToMessageRequested() const;
|
||||
void replyToMessageRequestNotify(FullReplyTo id);
|
||||
[[nodiscard]] auto replyToMessageRequested() const
|
||||
-> rpl::producer<ReplyToMessageRequest>;
|
||||
void replyToMessageRequestNotify(
|
||||
FullReplyTo to,
|
||||
bool forceAnotherChat = false);
|
||||
[[nodiscard]] rpl::producer<FullMsgId> readMessageRequested() const;
|
||||
[[nodiscard]] rpl::producer<FullMsgId> showMessageRequested() const;
|
||||
void replyNextMessage(FullMsgId fullId, bool next = true);
|
||||
|
@ -760,7 +767,7 @@ private:
|
|||
base::Timer _touchScrollTimer;
|
||||
|
||||
rpl::event_stream<FullMsgId> _requestedToEditMessage;
|
||||
rpl::event_stream<FullReplyTo> _requestedToReplyToMessage;
|
||||
rpl::event_stream<ReplyToMessageRequest> _requestedToReplyToMessage;
|
||||
rpl::event_stream<FullMsgId> _requestedToReadMessage;
|
||||
rpl::event_stream<FullMsgId> _requestedToShowMessage;
|
||||
|
||||
|
|
|
@ -323,14 +323,15 @@ RepliesWidget::RepliesWidget(
|
|||
}, _inner->lifetime());
|
||||
|
||||
_inner->replyToMessageRequested(
|
||||
) | rpl::start_with_next([=](auto fullId) {
|
||||
) | rpl::start_with_next([=](ListWidget::ReplyToMessageRequest request) {
|
||||
const auto canSendReply = _topic
|
||||
? Data::CanSendAnything(_topic)
|
||||
: Data::CanSendAnything(_history->peer);
|
||||
if (_joinGroup || !canSendReply || base::IsCtrlPressed()) {
|
||||
Controls::ShowReplyToChatBox(controller->uiShow(), { fullId });
|
||||
const auto &to = request.to;
|
||||
if (_joinGroup || !canSendReply || request.forceAnotherChat) {
|
||||
Controls::ShowReplyToChatBox(controller->uiShow(), { to });
|
||||
} else {
|
||||
replyToMessage(fullId);
|
||||
replyToMessage(to);
|
||||
_composeControls->focus();
|
||||
}
|
||||
}, _inner->lifetime());
|
||||
|
|
Loading…
Add table
Reference in a new issue