diff options
author | vimboss <devnull@localhost> | 2006-08-29 14:07:36 +0000 |
---|---|---|
committer | vimboss <devnull@localhost> | 2006-08-29 14:07:36 +0000 |
commit | 966545cd83832aff34fb91285e7d61e3bc5b2b87 (patch) | |
tree | b4a00569ab6c9132b67ec01657f97c4703a85f19 | |
parent | b075bb1229313a630e263848c5411844442b17d7 (diff) | |
download | vim-966545cd83832aff34fb91285e7d61e3bc5b2b87.tar.gz |
-rw-r--r-- | src/edit.c | 7 | ||||
-rw-r--r-- | src/mbyte.c | 8 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 14 insertions, 3 deletions
@@ -8597,7 +8597,12 @@ ins_left() tpos = curwin->w_cursor; if (oneleft() == OK) { - start_arrow(&tpos); +#if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) + /* Only call start_arrow() when not busy with preediting, it will + * break undo. K_LEFT is inserted in im_correct_cursor(). */ + if (!im_is_preediting()) +#endif + start_arrow(&tpos); #ifdef FEAT_RIGHTLEFT /* If exit reversed string, position is fixed */ if (revins_scol != -1 && (int)curwin->w_cursor.col >= revins_scol) diff --git a/src/mbyte.c b/src/mbyte.c index bcfca826..92f00e09 100644 --- a/src/mbyte.c +++ b/src/mbyte.c @@ -3514,6 +3514,11 @@ im_delete_preedit(void) add_to_input_buf(delkey, (int)sizeof(delkey)); } +/* + * Move the cursor left by "num_move_back" characters. + * Note that ins_left() checks im_is_preediting() to avoid breaking undo for + * these K_LEFT keys. + */ static void im_correct_cursor(int num_move_back) { @@ -3741,8 +3746,7 @@ im_preedit_changed_cb(GtkIMContext *context, gpointer data) } else if (cursor_index == 0 && preedit_string[0] == '\0') { - if (preedit_start_col == MAXCOL) - xim_has_preediting = FALSE; + xim_has_preediting = FALSE; /* If at the start position (after typing backspace) * preedit_start_col must be reset. */ diff --git a/src/version.c b/src/version.c index 3c2d9a32..14292893 100644 --- a/src/version.c +++ b/src/version.c @@ -667,6 +667,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 67, +/**/ 66, /**/ 65, |