diff --git a/ibus.c b/ibus.c index abd969f..6456f9c 100644 --- a/ibus.c +++ b/ibus.c @@ -889,7 +889,10 @@ handlecursor(DBusConnection *c, DBusMessage *m, Ictx *ctx) return reply(c, m, DBUS_TYPE_INVALID, nil); } -/* SetEngine: there is one engine, so any name is fine. */ +/* + * Accepted and thrown away: there is one engine, so any name is fine, + * and a relative cursor location is surface local, not a caret. + */ static DBusHandlerResult handleok(DBusConnection *c, DBusMessage *m, Ictx*) { @@ -908,6 +911,7 @@ static struct { {"Reset", "", handlereset}, {"Destroy", "", handledestroy}, {"SetCursorLocation", "iiii", handlecursor}, + {"SetCursorLocationRelative", "iiii", handleok}, {"SetCapabilities", "u", handlecap}, {"SetEngine", "s", handleok}, }; diff --git a/tests/ibus_live_test.c b/tests/ibus_live_test.c index 5ba2fad..4209884 100644 --- a/tests/ibus_live_test.c +++ b/tests/ibus_live_test.c @@ -128,6 +128,7 @@ runcontract(char *address) "SetEngine", "SetCapabilities", "SetCursorLocation", + "SetCursorLocationRelative", }; DBusConnection *conn; char path[96];