Allow goToMessageClickHandler to switch accounts.

This commit is contained in:
John Preston 2022-02-26 19:56:55 +03:00
parent 5ddcf402bc
commit daadf7e2a1

View file

@ -34,6 +34,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "media/audio/media_audio.h" #include "media/audio/media_audio.h"
#include "core/application.h" #include "core/application.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "window/window_controller.h"
#include "window/window_session_controller.h" #include "window/window_session_controller.h"
#include "core/crash_reports.h" #include "core/crash_reports.h"
#include "base/unixtime.h" #include "base/unixtime.h"
@ -1354,16 +1355,18 @@ ClickHandlerPtr goToMessageClickHandler(
MsgId msgId, MsgId msgId,
FullMsgId returnToId) { FullMsgId returnToId) {
return std::make_shared<LambdaClickHandler>([=] { return std::make_shared<LambdaClickHandler>([=] {
if (const auto main = App::main()) { // multi good const auto separate = Core::App().separateWindowForPeer(peer);
if (&main->session() == &peer->session()) { const auto controller = separate
auto params = Window::SectionShow{ ? separate->sessionController()
Window::SectionShow::Way::Forward : peer->session().tryResolveWindow();
}; if (controller) {
params.origin = Window::SectionShow::OriginMessage{ auto params = Window::SectionShow{
returnToId Window::SectionShow::Way::Forward
}; };
main->controller()->showPeerHistory(peer, params, msgId); params.origin = Window::SectionShow::OriginMessage{
} returnToId
};
controller->showPeerHistory(peer, params, msgId);
} }
}); });
} }