mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-03-22 05:33:45 -04:00
ime: move preedit state from terminal struct to the seat struct
This ensures different seat’s don’t step on each others IME pre-edit state. It also removes most dependencies on having a valid term pointer for many IME operations. We’re still not all the way, since we support disabling IME with a private mode, which is per terminal, not seat. Thus, we still require the seat to have keyboard focus on one of our windows. Closes #324. But note that *rendering* of multiple seat’s IME pre-edit strings is still broken.
This commit is contained in:
parent
eb3f9f14b0
commit
e8ffb05bc7
8 changed files with 178 additions and 136 deletions
17
terminal.h
17
terminal.h
|
|
@ -567,20 +567,7 @@ struct terminal {
|
|||
struct grid *url_grid_snapshot;
|
||||
|
||||
#if defined(FOOT_IME_ENABLED) && FOOT_IME_ENABLED
|
||||
struct {
|
||||
bool enabled;
|
||||
struct {
|
||||
wchar_t *text;
|
||||
struct cell *cells;
|
||||
int count;
|
||||
|
||||
struct {
|
||||
bool hidden;
|
||||
int start; /* Cell index, inclusive */
|
||||
int end; /* Cell index, exclusive */
|
||||
} cursor;
|
||||
} preedit;
|
||||
} ime;
|
||||
bool ime_enabled;
|
||||
#endif
|
||||
|
||||
bool is_shutting_down;
|
||||
|
|
@ -713,7 +700,7 @@ bool term_view_to_text(
|
|||
bool term_ime_is_enabled(const struct terminal *term);
|
||||
void term_ime_enable(struct terminal *term);
|
||||
void term_ime_disable(struct terminal *term);
|
||||
void term_ime_reset(struct terminal *term);
|
||||
bool term_ime_reset(struct terminal *term);
|
||||
void term_ime_set_cursor_rect(
|
||||
struct terminal *term, int x, int y, int width, int height);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue