Handle situation when studio is already loaded when gladish is being started

This commit is contained in:
Nedko Arnaudov 2009-08-20 01:13:15 +03:00
parent 773d618ecc
commit 4b62694887
1 changed files with 27 additions and 0 deletions

View File

@ -66,13 +66,40 @@ static DBusHandlerResult message_hook(DBusConnection * connection, DBusMessage *
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}
static bool control_proxy_is_studio_loaded(bool * present_ptr)
{
dbus_bool_t present;
if (!dbus_call_simple(SERVICE, OBJECT, IFACE, "IsStudioLoaded", "", "b", &present))
{
return false;
}
*present_ptr = present;
return true;
}
bool control_proxy_init(void)
{
bool studio_present;
if (!dbus_register_object_signal_handler(g_dbus_connection, SERVICE, OBJECT, IFACE, g_signals, message_hook, NULL))
{
return false;
}
if (!control_proxy_is_studio_loaded(&studio_present))
{
dbus_unregister_object_signal_handler(g_dbus_connection, SERVICE, OBJECT, IFACE, g_signals, message_hook, NULL);
return false;
}
if (studio_present)
{
control_proxy_on_studio_appeared();
}
return true;
}