Fix crash in logout from passcoded screen.

This commit is contained in:
John Preston 2020-08-24 16:57:36 +04:00
parent 39b0662a2c
commit f9be304e54

View file

@ -283,12 +283,13 @@ void MainWindow::setupIntro(Intro::EnterPoint point) {
void MainWindow::setupMain() { void MainWindow::setupMain() {
Expects(account().sessionExists()); Expects(account().sessionExists());
const auto animated = (_intro || _passcodeLock); const auto animated = _intro
|| (_passcodeLock && !Core::App().passcodeLocked());
const auto bg = animated ? grabInner() : QPixmap(); const auto bg = animated ? grabInner() : QPixmap();
const auto weak = (_main && _layer) const auto weakAnimatedLayer = (_main && _layer && !_passcodeLock)
? Ui::MakeWeak(_layer.get()) ? Ui::MakeWeak(_layer.get())
: nullptr; : nullptr;
if (weak) { if (weakAnimatedLayer) {
Assert(!animated); Assert(!animated);
_layer->hideAllAnimatedPrepare(); _layer->hideAllAnimatedPrepare();
} else { } else {
@ -310,7 +311,7 @@ void MainWindow::setupMain() {
Core::App().checkStartUrl(); Core::App().checkStartUrl();
} }
fixOrder(); fixOrder();
if (const auto strong = weak.data()) { if (const auto strong = weakAnimatedLayer.data()) {
strong->hideAllAnimatedRun(); strong->hideAllAnimatedRun();
} }
} }