From 0536bc41f4c3538aa1ad4cd68a5339de6a5a8613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 4 Dec 2020 21:26:38 +0100 Subject: [PATCH] csi: add DECSET 737769 - enables/disables IME input 73 77 69 = I M E --- csi.c | 9 +++++++++ terminal.h | 1 + 2 files changed, 10 insertions(+) diff --git a/csi.c b/csi.c index f70c58b2..232f7b1d 100644 --- a/csi.c +++ b/csi.c @@ -540,6 +540,13 @@ decset_decrst(struct terminal *term, unsigned param, bool enable) term->modify_escape_key = enable; break; + case 737769: + if (enable) + term_ime_enable(term); + else + term_ime_disable(term); + break; + default: UNHANDLED(); break; @@ -588,6 +595,7 @@ xtsave(struct terminal *term, unsigned param) case 1049: term->xtsave.alt_screen = term->grid == &term->alt; break; case 2004: term->xtsave.bracketed_paste = term->bracketed_paste; break; case 27127: term->xtsave.modify_escape_key = term->modify_escape_key; break; + case 737769: term->xtsave.ime = term_ime_is_enabled(term); break; } } @@ -622,6 +630,7 @@ xtrestore(struct terminal *term, unsigned param) case 1049: enable = term->xtsave.alt_screen; break; case 2004: enable = term->xtsave.bracketed_paste; break; case 27127: enable = term->xtsave.modify_escape_key; break; + case 737769: enable = term->xtsave.ime; break; default: return; } diff --git a/terminal.h b/terminal.h index 6a634914..f99c77c0 100644 --- a/terminal.h +++ b/terminal.h @@ -298,6 +298,7 @@ struct terminal { uint32_t bell_is_urgent:1; uint32_t alt_screen:1; uint32_t modify_escape_key:1; + uint32_t ime:1; } xtsave; char *window_title;