void SDL_DBus_Init(void) { if (!dbus.session_conn && LoadDBUSLibrary() != -1) { DBusError err; dbus.error_init(&err); dbus.session_conn = dbus.bus_get_private(DBUS_BUS_SESSION, &err); if (dbus.error_is_set(&err)) { dbus.error_free(&err); if (dbus.session_conn) { dbus.connection_unref(dbus.session_conn); dbus.session_conn = NULL; } return; /* oh well */ } dbus.connection_set_exit_on_disconnect(dbus.session_conn, 0); } }
static void X11_InitDBus(_THIS) { if (LoadDBUSLibrary() != -1) { SDL_VideoData *data = (SDL_VideoData *) _this->driverdata; DBusError err; DBUS_dbus_error_init(&err); data->dbus = DBUS_dbus_bus_get_private(DBUS_BUS_SESSION, &err); if (DBUS_dbus_error_is_set(&err)) { DBUS_dbus_error_free(&err); if (data->dbus) { DBUS_dbus_connection_unref(data->dbus); data->dbus = NULL; } return; /* oh well */ } DBUS_dbus_connection_set_exit_on_disconnect(data->dbus, 0); } }