c7718ece52
data: one trie for maps and dictionaries, one loader
...
The hash map served a single exact-match lookup that the trie already
answers, at the price of a second container, a second file loader with
its own drift, and a Str-to-UTF-8 conversion on every chain probe. The
files are small (kanji.dict is 7.5k lines), so the trie holds both.
trieopen validates keys and each space-separated value word against Str
and reports path:line; trielookup takes the Str every caller holds and
treats a nil trie as an unloaded map; trienew/trieput exist for tests.
The overflow guards on growth, Trie.root (always 0) and the per-language
init loop written twice are gone.
2026-08-16 15:56:32 +09:00
bfe83d0119
fix(data): reject partial and malformed map data
2026-08-14 23:09:55 +09:00
38475318db
fix(popup): fit the current X11 monitor
2026-08-14 22:54:15 +09:00
0471d58dec
popup: stabilize the input panel width
2026-08-14 21:13:49 +09:00
f222b4d573
popup: refine the input panel
2026-08-14 20:54:09 +09:00
e4fc327ffd
popup: show the candidate page
2026-08-14 20:06:53 +09:00
b536573622
engine: update active preedit capability
2026-08-14 18:44:52 +09:00
9a3a92170e
engine: reject stale dictionary results
2026-08-14 18:43:12 +09:00
2376035524
engine: route popup preedit by client capability
2026-08-14 17:02:46 +09:00
08369e718e
popup: use system fonts exclusively
2026-08-14 15:17:00 +09:00
b6a9ccd9d9
cleanup: simplify frontend request ownership
2026-08-13 21:57:32 +09:00
e01a991de4
remove: drop Wayland frontend
2026-08-13 21:25:12 +09:00
f46d51b539
renderer: use direct FreeType with explicit font files
2026-08-13 20:40:38 +09:00
136695a900
hanja: separate temporary search mode
2026-08-12 21:23:10 +09:00
4e90fdd5c7
fix: harden caret and IBus dispatch
2026-08-12 17:34:34 +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
bc5712b6ac
fix: retain the active owner's caret
2026-08-12 15:44:04 +09:00
5ba5cf209c
fix: assign one active engine owner
2026-08-12 15:41:46 +09:00
ec7e6eb992
fix: preserve complete Japanese readings
2026-08-12 15:28:16 +09:00
0fff17c8b8
emoji: add one-shot candidate search
2026-08-11 22:24:59 +09:00
9dc116a035
harden ipc and frontend recovery
2026-08-11 19:34:47 +09:00
4bfb659b6d
fix candidate popup bounds
2026-08-11 19:34:27 +09:00
7b40ef419f
fix vietnamese telex state
2026-08-11 19:34:14 +09:00
e70278a3d2
fix core text and map ownership
2026-08-11 19:32:58 +09:00
ef749ba730
add preedit to ipc
2026-05-28 17:28:42 +09:00
884ba56619
optimize rendering
2026-02-08 18:10:21 +09:00
d06cef6575
add lang dispatch, korean hangul input
2026-02-08 16:52:08 +09:00
5653298bb1
use trie for map lookup
2026-02-08 16:36:59 +09:00
97f897755f
rename hnode fields, functions.
2026-02-08 16:29:29 +09:00
db2b3eacad
add vietnam telex input
2026-01-01 18:22:16 +09:00
874b941439
add emoji font.
...
fix: 97ae9b1709
2025-12-28 19:50:38 +09:00
97ae9b1709
add eomji(ctrl+e)
...
TODO: Some emojis can't be displayed. A font fallback or font merge is required.
2025-12-28 16:49:26 +09:00
436a49c3ca
remove jp.c
2025-12-28 13:02:53 +09:00
e5ce5fd61e
rename line => pre
2025-12-28 12:26:28 +09:00
84264e97d4
refactor preedit window layout
...
'안'
1 안녕
2 안녕하세요
...
8 안녕하세요릭
2025-12-24 23:43:53 +09:00
dcd1147638
first commit
2025-12-23 20:21:56 +09:00