diff -Nur SDL2-2.0.7/src/core/linux/SDL_ibus.c SDL2-2.0.7n/src/core/linux/SDL_ibus.c --- SDL2-2.0.7/src/core/linux/SDL_ibus.c 2017-10-24 03:27:46.000000000 +0800 +++ SDL2-2.0.7n/src/core/linux/SDL_ibus.c 2017-10-26 18:32:46.795026798 +0800 @@ -299,7 +299,7 @@ caps |= IBUS_CAP_PREEDIT_TEXT; } - SDL_DBus_CallVoidMethod(IBUS_SERVICE, input_ctx_path, IBUS_INPUT_INTERFACE, "SetCapabilities", + SDL_DBus_CallVoidMethodOnConnection(ibus_conn, IBUS_SERVICE, input_ctx_path, IBUS_INPUT_INTERFACE, "SetCapabilities", DBUS_TYPE_UINT32, &caps, DBUS_TYPE_INVALID); } } @@ -341,6 +341,7 @@ dbus->bus_add_match(ibus_conn, "type='signal',interface='org.freedesktop.IBus.InputContext'", NULL); dbus->connection_try_register_object_path(ibus_conn, input_ctx_path, &ibus_vtable, dbus, NULL); dbus->connection_flush(ibus_conn); + result = SDL_TRUE; } SDL_IBus_SetFocus(SDL_GetKeyboardFocus() != NULL);