From 22d23c8be179baffb5e276248efaa120bc68511e Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Fri, 2 Jul 2021 20:34:09 +0400 Subject: [PATCH] Add missed signalId check --- .../platform/linux/linux_gtk_integration.cpp | 14 +++++++++----- Telegram/lib_webview | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Telegram/SourceFiles/platform/linux/linux_gtk_integration.cpp b/Telegram/SourceFiles/platform/linux/linux_gtk_integration.cpp index 0504dea56..3caa9b31a 100644 --- a/Telegram/SourceFiles/platform/linux/linux_gtk_integration.cpp +++ b/Telegram/SourceFiles/platform/linux/linux_gtk_integration.cpp @@ -411,6 +411,9 @@ bool GtkIntegration::showOpenWithDialog(const QString &filepath) const { const auto context = Glib::MainContext::create(); const auto loop = Glib::MainLoop::create(context); g_main_context_push_thread_default(context->gobj()); + const auto contextGuard = gsl::finally([&] { + g_main_context_pop_thread_default(context->gobj()); + }); bool result = false; const auto signalId = _private->dbusConnection->signal_subscribe( @@ -442,11 +445,12 @@ bool GtkIntegration::showOpenWithDialog(const QString &filepath) const { } }); - QWindow window; - QGuiApplicationPrivate::showModalWindow(&window); - loop->run(); - g_main_context_pop_thread_default(context->gobj()); - QGuiApplicationPrivate::hideModalWindow(&window); + if (signalId != 0) { + QWindow window; + QGuiApplicationPrivate::showModalWindow(&window); + loop->run(); + QGuiApplicationPrivate::hideModalWindow(&window); + } return result; } catch (...) { diff --git a/Telegram/lib_webview b/Telegram/lib_webview index e7caab807..c56e77c90 160000 --- a/Telegram/lib_webview +++ b/Telegram/lib_webview @@ -1 +1 @@ -Subproject commit e7caab807b0b81dd0f138f59798d9fd3544261dc +Subproject commit c56e77c9013f6749b8e7e5fa4c13dfe7002e7c6e