xim: Compose results of any length, StatusNone styles; ibus: no cursor size check

A Compose sequence whose result is more than one character has no
keysym, so xkb_compose_state_get_one_sym gave nothing and the result was
lost; the UTF-8 the compose state holds is committed instead.  Clients
that ask for a StatusNone style — fcitx5 offers them — failed to create
an input context; the three preedit styles come in both status flavours
now.  IBus SetCursorLocation returned an error for a negative width or
height that nothing reads and no client ever waits for.
This commit is contained in:
2026-08-17 01:49:06 +09:00
parent 0cb395579f
commit 7c9e736996
4 changed files with 13 additions and 8 deletions

3
ibus.c
View File

@@ -786,9 +786,6 @@ handlecursor(DBusConnection *c, DBusMessage *m, Ictx *ctx)
DBUS_TYPE_INVALID))
return handleerror(c, m, DBUS_ERROR_INVALID_ARGS,
"SetCursorLocation expects four integers");
if(w < 0 || h < 0)
return handleerror(c, m, DBUS_ERROR_INVALID_ARGS,
"cursor dimensions must not be negative");
setcursor(ctx, x, y, h);
return reply(c, m, DBUS_TYPE_INVALID, nil);
}