Added ability to forward to Saved Messages on fast action with Ctrl.

This commit is contained in:
23rd 2025-08-23 14:54:58 +03:00
parent 1c1d13545b
commit 3549c00141
3 changed files with 29 additions and 0 deletions

View file

@ -1935,6 +1935,29 @@ void FastShareMessage(
}), Ui::LayerOption::CloseOther);
}
void FastShareMessageToSelf(
std::shared_ptr<Main::SessionShow> show,
not_null<HistoryItem*> item) {
const auto self = show->session().user();
const auto donePhraseArgs = ChatHelpers::ForwardedMessagePhraseArgs{
.toCount = 1,
.singleMessage = true,
.to1 = self,
.to2 = nullptr,
};
auto sendAction = Api::SendAction(self->owner().history(self));
sendAction.clearDraft = false;
show->session().api().forwardMessages(
Data::ResolvedForwardDraft{ .items = {item} },
std::move(sendAction),
[=] {
auto phrase = rpl::variable<TextWithEntities>(
ChatHelpers::ForwardedMessagePhrase(
donePhraseArgs)).current();
show->showToast(std::move(phrase));
});
}
void FastShareMessage(
not_null<Window::SessionController*> controller,
not_null<HistoryItem*> item,

View file

@ -71,6 +71,9 @@ struct ShareBoxStyleOverrides {
};
[[nodiscard]] ShareBoxStyleOverrides DarkShareBoxStyle();
void FastShareMessageToSelf(
std::shared_ptr<Main::SessionShow> show,
not_null<HistoryItem*> item);
void FastShareMessage(
std::shared_ptr<Main::SessionShow> show,
not_null<HistoryItem*> item,

View file

@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "history/view/history_view_message.h"
#include "api/api_suggest_post.h"
#include "base/qt/qt_key_modifiers.h"
#include "base/unixtime.h"
#include "core/click_handler_types.h" // ClickHandlerContext
#include "core/ui_integration.h"
@ -4214,6 +4215,8 @@ ClickHandlerPtr Message::prepareRightActionLink() const {
savedFromPeer,
Window::SectionShow::Way::Forward,
savedFromMsgId);
} else if (base::IsCtrlPressed()) {
FastShareMessageToSelf(controller->uiShow(), item);
} else {
FastShareMessage(controller, item);
}