From 001c82fa547bb8c62c50bde1b17ff9c8dd3d61c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Thu, 3 Dec 2020 18:40:54 +0100 Subject: [PATCH] =?UTF-8?q?ime:=20don=E2=80=99t=20adjust=20cursor=E2=80=99?= =?UTF-8?q?s=20cell-end=20if=20it=E2=80=99s=20equal=20to=20the=20cell-begi?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ime.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/ime.c b/ime.c index 67718517..eb4eadf4 100644 --- a/ime.c +++ b/ime.c @@ -278,19 +278,25 @@ done(void *data, struct zwp_text_input_v3 *zwp_text_input_v3, /* Bounded by number of screen columns */ cell_begin = min(max(cell_begin, 0), cell_count - 1); - - /* Ensure end comes *after* begin, and is bounded by screen */ - if (cell_end <= cell_begin) - cell_end = cell_begin + max(wcwidth(term->ime.preedit.cells[cell_begin].wc), 1); cell_end = min(max(cell_end, 0), cell_count); +#if 1 + if (cell_end < cell_begin) + cell_end = cell_begin; +#else + if (cell_end <= cell_begin) { + cell_end = cell_begin + max( + wcwidth(term->ime.preedit.cells[cell_begin].wc), 1); + } +#endif + LOG_DBG("pre-edit cursor: begin=%d, end=%d", cell_begin, cell_end); assert(cell_begin >= 0); assert(cell_begin < cell_count); - assert(cell_end >= 1); + assert(cell_begin <= cell_end); + assert(cell_end >= 0); assert(cell_end <= cell_count); - assert(cell_begin < cell_end); term->ime.preedit.cursor.hidden = false; term->ime.preedit.cursor.start = cell_begin;