Allow goToMessageClickHandler to switch accounts.
This commit is contained in:
parent
5ddcf402bc
commit
daadf7e2a1
|
@ -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
|
||||||
|
? separate->sessionController()
|
||||||
|
: peer->session().tryResolveWindow();
|
||||||
|
if (controller) {
|
||||||
auto params = Window::SectionShow{
|
auto params = Window::SectionShow{
|
||||||
Window::SectionShow::Way::Forward
|
Window::SectionShow::Way::Forward
|
||||||
};
|
};
|
||||||
params.origin = Window::SectionShow::OriginMessage{
|
params.origin = Window::SectionShow::OriginMessage{
|
||||||
returnToId
|
returnToId
|
||||||
};
|
};
|
||||||
main->controller()->showPeerHistory(peer, params, msgId);
|
controller->showPeerHistory(peer, params, msgId);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue