void X11_VideoQuit(_THIS) { SDL_VideoData *data = (SDL_VideoData *) _this->driverdata; if (data->clipboard_window) { X11_XDestroyWindow(data->display, data->clipboard_window); } SDL_free(data->classname); #ifdef X_HAVE_UTF8_STRING if (data->im) { X11_XCloseIM(data->im); } #endif X11_QuitModes(_this); X11_QuitKeyboard(_this); X11_QuitMouse(_this); X11_QuitTouch(_this); /* !!! FIXME: other subsystems use D-Bus, so we shouldn't quit it here; have SDL.c do this at a higher level, or add refcounting. */ #if SDL_USE_LIBDBUS SDL_DBus_Quit(); #endif }
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.system_conn = dbus.bus_get_private(DBUS_BUS_SYSTEM, &err); } if (dbus.error_is_set(&err)) { dbus.error_free(&err); SDL_DBus_Quit(); return; /* oh well */ } dbus.connection_set_exit_on_disconnect(dbus.system_conn, 0); dbus.connection_set_exit_on_disconnect(dbus.session_conn, 0); } }
void X11_VideoQuit(_THIS) { SDL_VideoData *data = (SDL_VideoData *) _this->driverdata; SDL_free(data->classname); #ifdef X_HAVE_UTF8_STRING if (data->im) { X11_XCloseIM(data->im); } #endif X11_QuitModes(_this); X11_QuitKeyboard(_this); X11_QuitMouse(_this); X11_QuitTouch(_this); #if SDL_USE_LIBDBUS SDL_DBus_Quit(); #endif }