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) {