From 67eba93e295a5dd338f4e23df748685b36936308 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Sun, 7 Mar 2021 02:29:38 +0400 Subject: [PATCH] Use gsl::finally in PortalAutostart --- Telegram/SourceFiles/platform/linux/specific_linux.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/platform/linux/specific_linux.cpp b/Telegram/SourceFiles/platform/linux/specific_linux.cpp index cce9a23f3..b0887ab02 100644 --- a/Telegram/SourceFiles/platform/linux/specific_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/specific_linux.cpp @@ -172,6 +172,12 @@ PortalAutostart::PortalAutostart(bool start, bool silent) { "Response", requestPath); + const auto signalGuard = gsl::finally([&] { + if (signalId != 0) { + connection->signal_unsubscribe(signalId); + } + }); + connection->call_sync( std::string(kXDGDesktopPortalObjectPath), "org.freedesktop.portal.Background", @@ -186,7 +192,6 @@ PortalAutostart::PortalAutostart(bool start, bool silent) { QGuiApplicationPrivate::showModalWindow(this); loop.exec(); QGuiApplicationPrivate::hideModalWindow(this); - connection->signal_unsubscribe(signalId); } } catch (const Glib::Error &e) { if (!silent) {