Commit Graph

21 Commits

Author SHA1 Message Date
eb0f88f764 ipc: strip machinery no peer uses; keep client state in one Keyreq
ipc.c: an AF_UNIX nonblocking connect completes at once or fails with
EAGAIN, so the EINPROGRESS/poll/SO_ERROR path and the fcntl juggling
were dead; the deadline plumbing checked a clock that cannot fail and
re-tested the deadline before every transfer although only waitfd
blocks; readfield's truncation and discard loop served the unit test,
since every caller owns char[Ipcfieldmax+1]; NULL-argument checks on
in-tree encoders are gone (peer validation stays). The primary key frame
is Ipckey, not 'legacy'; ipckeysym names the keysym mapping.

srv.c: the per-connection capability and caret already lived in the
persistent Keyreq; the mirror locals and 'negotiated' flag guarded a
protocol rule no client relied on. proccreate never fails in libthread.

gtk: focus-out no longer round-trips a reset before closing the socket
that releases the engine; the caret dedup compares the packed frame;
srvconnect's preedit no-ops and the insimple flag are gone.
2026-08-16 15:53:08 +09:00
43b469f70b ipc: share one keysym and modifier mapping across frontends
The keysym-to-engine-key rule lived in ibus.c, xim/xim.c and gtk/main.c,
and the copies disagreed: GTK sent keypad digits as special keys while
IBus and XIM sent '1'..'9'. Modifiers were rebuilt bit by bit in two
places although Mmask already is the X core layout; only the virtual
Super bit (26) that GDK and IBus set needs folding. ipckey/ipcmod in
ipc.c serve the daemon, the module and the tests.
2026-08-16 15:47:47 +09:00
133cc97e55 fix(runtime): make startup and GTK installation explicit 2026-08-14 23:17:18 +09:00
a637f457f7 fix(xim): honor reset and X11 keyboard state 2026-08-14 22:34:37 +09:00
2e6d7d8e48 xim: clear callback preedit on owner loss 2026-08-14 19:17:37 +09:00
76af1a022f xim: refresh placement before each key 2026-08-14 17:43:56 +09:00
e6bf32b0f6 xim: place popup from input context 2026-08-14 17:35:33 +09:00
2b4c509d0d xim: add callback preedit and UTF-8 negotiation 2026-08-14 17:20:38 +09:00
4e07699460 xim: run server inside strans 2026-08-14 16:16:27 +09:00
de536da0bb refactor: trim popup and XIM helpers 2026-08-12 17:33:14 +09:00
211a6917b2 refactor: remove guarded helper headers 2026-08-12 16:45:27 +09:00
4e8720a40d fix: terminate XIM UTF-8 text runs 2026-08-12 16:43:57 +09:00
71af269efe fix: preserve emoji commits through XIM 2026-08-12 16:40:58 +09:00
9d60c4bbb0 fix: release XIM ownership on reset 2026-08-12 16:20:47 +09:00
432df3730c fix: harden the per-user IPC endpoint 2026-08-12 16:08:23 +09:00
1295480858 fix: repair XIM context lifecycle 2026-08-12 15:56:43 +09:00
5ba5cf209c fix: assign one active engine owner 2026-08-12 15:41:46 +09:00
5ae0945015 Simplify build system 2026-08-12 14:23:41 +09:00
9dc116a035 harden ipc and frontend recovery 2026-08-11 19:34:47 +09:00
O_WRONLY
418101a904 add Makefile to xim/xcb-util
Only build the necessary files.
2025-12-23 22:09:36 +09:00
dcd1147638 first commit 2025-12-23 20:21:56 +09:00