19 Commits

Author SHA1 Message Date
82078a60e7 build: the reference trees are not ours
fcitx5, fcitx5-hangul, fcitx5-gtk, kime and libhangul are cloned into the
work tree as ref-*/ to be read against, so git has to be told to leave them
alone.  One pattern rather than five names: whatever gets cloned next is
covered too, and none of it is ever ours to track.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-18 00:40:11 +09:00
233884e51f build: the input-method and virtual-keyboard protocols
zwp_input_method_v2 and zwp_virtual_keyboard_v1, vendored verbatim from
wlroots 012ca825 under proto/ and turned into imv2.[ch] and vkv1.[ch] by
wayland-scanner; only the XML is tracked, and nothing compiles them yet.
The Dockerfile gains wayland, which carries the scanner.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 18:55:41 +09:00
0cb395579f xim: one file at the top level, keymaplookup in it
xim/keymap.c held one 37-line function apart from xim.c, with its own
prototype typed by hand in xim.c and nelem spelt out because it avoided
dat.h — all so that a test could link it without imdkit, though the XIM
adapter test #includes xim.c whole anyway.  It lives in xim.c now, and
xim.c, the last file of its directory, sits beside ibus.c.
2026-08-17 01:47:40 +09:00
45c0290fd4 build: ignore a stale xim_test binary
The old xim/Makefile built xim/xim_test; nothing does now, but older
checkouts may still have it, so keep the name ignored.
2026-08-16 16:56:56 +09:00
a70cfc42e3 xim: drop what no client uses; poll for owner loss like IBus
XIM text always went out through imdkit's COMPOUND_TEXT converter,
which already wraps every UTF-8 string in ESC%G; the UTF8_STRING
negotiation, the per-client encoding list, ximtext.c's fallback and its
wrapper never changed a byte on the wire. The spot location is honoured
for every style now (GTK's XIM module sends it with PreeditCallbacks)
and an unset focus window means the client window, as the spec says,
so those clients get the popup at the caret. readattrs/place kept four
transient fields to pass values between them; ximclose tore down state
right before die(); the OOM passthrough context was a third policy for
one small calloc where emalloc dies like everything else. Both frontends
now poll for engine-owner loss only while a preedit shows instead of
XIM waking on a pipe the engine had to know about; ibus stops waking
five times a second when idle. keymeaningful() is the engine's own
predicate. The standalone xim_test moved into the unit suite, so
xim/Makefile is gone.
2026-08-16 16:16:31 +09:00
61840fc108 build: ignore the stress test binary 2026-08-16 15:45:18 +09:00
3576c4ea68 tests: cover frontend input-panel protocols 2026-08-14 20:09:49 +09:00
7619d2bd9d ibus: support modern client preedit 2026-08-14 19:59:52 +09:00
76f9e1a21f gtk: honor preedit policy and cursor placement 2026-08-14 19:12:53 +09:00
4e07699460 xim: run server inside strans 2026-08-14 16:16:27 +09:00
e44fc005da tests: cover stale daemon endpoint recovery 2026-08-14 01:54:25 +09:00
469278209f tests: verify failed startup publishes no endpoints 2026-08-14 01:29:00 +09:00
9569c2eaaf tests: cover daemon endpoint collision ownership 2026-08-14 01:03:13 +09:00
f8ebfcdc86 tests: cover ipc listener capacity and recovery 2026-08-14 00:02:23 +09:00
f399eb0af6 tests: cover live ibus transport lifecycle 2026-08-13 23:55:27 +09:00
c41a1b4227 build: remove generated artifacts and unsafe scripts 2026-08-12 16:23:45 +09:00
099acdf2a6 stop tracking build outputs 2026-08-11 19:35:19 +09:00
cc157c0b3c add map (from 9front) 2025-12-23 22:14:06 +09:00
dcd1147638 first commit 2025-12-23 20:21:56 +09:00