2
0
mirror of https://github.com/kotatogram/kotatogram-desktop synced 2025-09-01 07:05:13 +00:00

Don't hold GApplication

That's a much better way to avoid defunct event loop that will work in any edge case

Also don't assume GApplication is always running in Platform::Notifications::Enforced
This commit is contained in:
Ilya Fedin
2023-02-18 18:45:11 +04:00
committed by John Preston
parent 78467b18f7
commit f71e7812e6
2 changed files with 4 additions and 20 deletions

View File

@@ -245,22 +245,6 @@ void LaunchGApplication() {
.chopped(8)
.toStdString();
const auto owned = [&] {
if (!Gio::Application::id_is_valid(appId)) {
return false;
}
try {
return base::Platform::DBus::NameHasOwner(
Gio::DBus::Connection::get_sync(
Gio::DBus::BusType::SESSION),
appId);
} catch (...) {
}
return false;
}();
const auto app = Glib::wrap(
G_APPLICATION(
g_object_new(
@@ -270,8 +254,7 @@ void LaunchGApplication() {
? appId.c_str()
: nullptr,
"flags",
G_APPLICATION_HANDLES_OPEN
| (owned ? G_APPLICATION_NON_UNIQUE : 0),
G_APPLICATION_HANDLES_OPEN,
nullptr)));
app->signal_startup().connect([=] {
@@ -388,7 +371,6 @@ void LaunchGApplication() {
});
});
app->hold();
app->run(0, nullptr);
});
}