From 4b626948873c42d9ec9b34036805117de3576dc3 Mon Sep 17 00:00:00 2001 From: Nedko Arnaudov Date: Thu, 20 Aug 2009 01:13:15 +0300 Subject: [PATCH] Handle situation when studio is already loaded when gladish is being started --- gui/control_proxy.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gui/control_proxy.c b/gui/control_proxy.c index 8eb14a20..4d7e381d 100644 --- a/gui/control_proxy.c +++ b/gui/control_proxy.c @@ -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; } -- 2.11.4.GIT