From a43143d01cbda44b2a76582b72c1629992b6a213 Mon Sep 17 00:00:00 2001
From: John Preston <johnprestonmail@gmail.com>
Date: Mon, 27 May 2024 17:53:54 +0400
Subject: [PATCH] Separate ForceDisable from LastCheckCrashed.

---
 Telegram/SourceFiles/core/application.cpp   | 5 ++---
 Telegram/SourceFiles/core/core_settings.cpp | 5 +----
 Telegram/lib_ui                             | 2 +-
 3 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/Telegram/SourceFiles/core/application.cpp b/Telegram/SourceFiles/core/application.cpp
index 5557eb503..d0470dfc7 100644
--- a/Telegram/SourceFiles/core/application.cpp
+++ b/Telegram/SourceFiles/core/application.cpp
@@ -383,7 +383,7 @@ void Application::run() {
 	}
 
 	SetCrashAnnotationsGL();
-	if (!Platform::IsMac() && Ui::GL::LastCrashCheckFailed()) {
+	if (Ui::GL::LastCrashCheckFailed()) {
 		showOpenGLCrashNotification();
 	}
 
@@ -427,14 +427,12 @@ void Application::checkWindowAccount(not_null<Window::Controller*> window) {
 
 void Application::showOpenGLCrashNotification() {
 	const auto enable = [=] {
-		Ui::GL::ForceDisable(false);
 		Ui::GL::CrashCheckFinish();
 		settings().setDisableOpenGL(false);
 		Local::writeSettings();
 		Restart();
 	};
 	const auto keepDisabled = [=](Fn<void()> close) {
-		Ui::GL::ForceDisable(true);
 		Ui::GL::CrashCheckFinish();
 		settings().setDisableOpenGL(true);
 		Local::writeSettings();
@@ -792,6 +790,7 @@ void Application::badMtprotoConfigurationError() {
 }
 
 void Application::startLocalStorage() {
+	Ui::GL::DetectLastCheckCrash();
 	Local::start();
 	_saveSettingsTimer.emplace([=] { saveSettings(); });
 	settings().saveDelayedRequests() | rpl::start_with_next([=] {
diff --git a/Telegram/SourceFiles/core/core_settings.cpp b/Telegram/SourceFiles/core/core_settings.cpp
index a54f5ef33..daaff5acf 100644
--- a/Telegram/SourceFiles/core/core_settings.cpp
+++ b/Telegram/SourceFiles/core/core_settings.cpp
@@ -910,10 +910,7 @@ void Settings::addFromSerialized(const QByteArray &serialized) {
 	_recentEmojiPreload = std::move(recentEmojiPreload);
 	_emojiVariants = std::move(emojiVariants);
 	_disableOpenGL = (disableOpenGL == 1);
-	if (!Platform::IsMac()) {
-		Ui::GL::ForceDisable(_disableOpenGL
-			|| Ui::GL::LastCrashCheckFailed());
-	}
+	Ui::GL::ForceDisable(_disableOpenGL);
 	_groupCallNoiseSuppression = (groupCallNoiseSuppression == 1);
 	const auto uncheckedWorkMode = static_cast<WorkMode>(workMode);
 	switch (uncheckedWorkMode) {
diff --git a/Telegram/lib_ui b/Telegram/lib_ui
index 037ceb272..b21a93f3b 160000
--- a/Telegram/lib_ui
+++ b/Telegram/lib_ui
@@ -1 +1 @@
-Subproject commit 037ceb272c4dd2eb456e18b61e374c1fa759d109
+Subproject commit b21a93f3ba47d6233a0feb764be37850ae1edcb2