mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-04 04:06:06 -05:00
ime: don’t commit IME changes when we don’t have IME focus
Fixes log spamming in Sway: 00:54:07.780 [DEBUG] [wlr] [types/wlr_text_input_v3.c:181] Text input commit received without focus 00:54:07.780 [INFO] [sway/input/text_input.c:127] Inactive text input tried to commit an update Closes #384
This commit is contained in:
parent
c3880af593
commit
3f19ee4d92
2 changed files with 12 additions and 0 deletions
11
ime.c
11
ime.c
|
|
@ -26,6 +26,7 @@ enter(void *data, struct zwp_text_input_v3 *zwp_text_input_v3,
|
|||
|
||||
/* The main grid is the *only* input-receiving surface we have */
|
||||
xassert(seat->kbd_focus != NULL);
|
||||
seat->ime.focused = true;
|
||||
ime_enable(seat);
|
||||
}
|
||||
|
||||
|
|
@ -41,6 +42,7 @@ leave(void *data, struct zwp_text_input_v3 *zwp_text_input_v3,
|
|||
term_ime_reset(term);
|
||||
|
||||
ime_disable(seat);
|
||||
seat->ime.focused = false;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -334,6 +336,9 @@ ime_send_cursor_rect(struct seat *seat, struct terminal *term)
|
|||
if (unlikely(seat->wayl->text_input_manager == NULL))
|
||||
return;
|
||||
|
||||
if (!seat->ime.focused)
|
||||
return;
|
||||
|
||||
if (!term->ime.enabled)
|
||||
return;
|
||||
|
||||
|
|
@ -367,6 +372,9 @@ ime_enable(struct seat *seat)
|
|||
struct terminal *term = seat->kbd_focus;
|
||||
xassert(term != NULL);
|
||||
|
||||
if (!seat->ime.focused)
|
||||
return;
|
||||
|
||||
if (!term->ime.enabled)
|
||||
return;
|
||||
|
||||
|
|
@ -397,6 +405,9 @@ ime_disable(struct seat *seat)
|
|||
if (unlikely(seat->wayl->text_input_manager == NULL))
|
||||
return;
|
||||
|
||||
if (!seat->ime.focused)
|
||||
return;
|
||||
|
||||
ime_reset(seat);
|
||||
|
||||
zwp_text_input_v3_disable(seat->wl_text_input);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue