GError *error = NULL;
DBusGProxy *driver_proxy;
guint request_ret;
+ gboolean ret;
// Initialize the DBus connection
dbus_connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
if (dbus_connection == NULL)
{
- g_warning ("Unable to connect to dbus: %s", error->message);
+ g_warning (_("Unable to connect to DBus: %s\n"), error->message);
g_error_free (error);
return;
}
DBUS_PATH_DBUS,
DBUS_INTERFACE_DBUS);
- if (!org_freedesktop_DBus_request_name (driver_proxy, service_name, 0, &request_ret, &error))
+ ret = org_freedesktop_DBus_request_name (driver_proxy,
+ service_name,
+ DBUS_NAME_FLAG_DO_NOT_QUEUE,
+ &request_ret,
+ &error);
+
+ if (!ret)
{
- // FIXME: for whatever reason, this is wrong. The error message doesn't appear
- // FIXME: when we were unable to register the service. Perhaps there's a more
- // FIXME: GLib-y way of doing this?
- g_warning ("Unable to register service: %s", error->message);
+ g_warning (_("Unable to communicate with DBus: %s\n"), error->message);
g_error_free (error);
}
+ if (request_ret == DBUS_REQUEST_NAME_REPLY_EXISTS)
+ {
+ g_critical (_("There is already an instance of Tilda running\n"));
+ exit (EXIT_FAILURE);
+ }
+
g_object_unref (driver_proxy);
}