url-mode: disable IME mode while URL-mode is active

This prevents the IME from stealing "our" key-presses, and thus
preventing the user from opening URLs.

Closes #1718, hopefully.
This commit is contained in:
Daniel Eklöf 2024-05-21 06:18:00 +02:00
parent 18b702b249
commit 8716ca5784
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
4 changed files with 18 additions and 1 deletions

View file

@ -778,6 +778,12 @@ urls_render(struct terminal *term)
if (tll_length(win->term->urls) == 0)
return;
/* Disable IME while in URL-mode */
if (term_ime_is_enabled(term)) {
term->ime_reenable_after_url_mode = true;
term_ime_disable(term);
}
/* Dirty the last cursor, to ensure it is erased */
{
struct row *cursor_row = term->render.last_cursor.row;
@ -861,5 +867,11 @@ urls_reset(struct terminal *term)
term->urls_show_uri_on_jump_label = false;
memset(term->url_keys, 0, sizeof(term->url_keys));
/* Re-enable IME, if it was enabled before we entered URL-mode */
if (term->ime_reenable_after_url_mode) {
term->ime_reenable_after_url_mode = false;
term_ime_enable(term);
}
render_refresh(term);
}