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.
This commit is contained in:
@@ -82,13 +82,14 @@ void ibus_capability_policy(struct ct*);
|
||||
void ibus_private_input_policy(struct ct*);
|
||||
void ibus_context_lifecycle(struct ct*);
|
||||
void ibus_active_release_lifecycle(struct ct*);
|
||||
void xim_keymap_lookup(struct ct*);
|
||||
void xim_compound_text(struct ct*);
|
||||
void xim_adapter_key_contract(struct ct*);
|
||||
void xim_adapter_release_lifecycle(struct ct*);
|
||||
void xim_adapter_free_waits_for_release(struct ct*);
|
||||
void xim_adapter_styles(struct ct*);
|
||||
void xim_adapter_placement(struct ct*);
|
||||
void xim_adapter_placement_updates(struct ct*);
|
||||
void xim_adapter_encoding_negotiation(struct ct*);
|
||||
void xim_adapter_callback_replacement(struct ct*);
|
||||
void xim_adapter_callback_unicode(struct ct*);
|
||||
void xim_adapter_callback_cleanup(struct ct*);
|
||||
|
||||
Reference in New Issue
Block a user