]> granicus.if.org Git - vim/commitdiff
updated for version 7.2.390 v7.2.390
authorBram Moolenaar <Bram@vim.org>
Wed, 10 Mar 2010 13:15:54 +0000 (14:15 +0100)
committerBram Moolenaar <Bram@vim.org>
Wed, 10 Mar 2010 13:15:54 +0000 (14:15 +0100)
Problem:    In some situations the popup menu can be displayed wrong.
Solution:   Remove the popup menu if the cursor moved. (Lech Lorens)

src/edit.c
src/version.c

index 43058f8b71bd8f64ebf0fe647176ce213a3ebc9c..33e580f1b91cadaba62e340ce9a440f56d289fc2 100644 (file)
@@ -4684,6 +4684,7 @@ ins_complete(c)
     int                startcol = 0;       /* column where searched text starts */
     colnr_T    curs_col;           /* cursor column */
     int                n;
+    int                save_w_wrow;
 
     compl_direction = ins_compl_key2dir(c);
     if (!compl_started)
@@ -5067,6 +5068,7 @@ ins_complete(c)
     /*
      * Find next match (and following matches).
      */
+    save_w_wrow = curwin->w_wrow;
     n = ins_compl_next(TRUE, ins_compl_key2count(c), ins_compl_use_match(c));
 
     /* may undisplay the popup menu */
@@ -5220,6 +5222,12 @@ ins_complete(c)
        /* RedrawingDisabled may be set when invoked through complete(). */
        n = RedrawingDisabled;
        RedrawingDisabled = 0;
+
+       /* If the cursor moved we need to remove the pum first. */
+       setcursor();
+       if (save_w_wrow != curwin->w_wrow)
+           ins_compl_del_pum();
+
        ins_compl_show_pum();
        setcursor();
        RedrawingDisabled = n;
index 109532e7c9c8630dc469792932eec86182bb0622..18f3ba5c4ef46b39923af4737f2c9b05efceeb61 100644 (file)
@@ -681,6 +681,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    390,
 /**/
     389,
 /**/