]> git.pld-linux.org Git - packages/vim.git/blob - 7.0.062
- updated to 0.7.3
[packages/vim.git] / 7.0.062
1 To: vim-dev@vim.org
2 Subject: Patch 7.0.062
3 Fcc: outbox
4 From: Bram Moolenaar <Bram@moolenaar.net>
5 Mime-Version: 1.0
6 Content-Type: text/plain; charset=ISO-8859-1
7 Content-Transfer-Encoding: 8bit
8 ------------
9
10 Patch 7.0.062
11 Problem:    Mac: Crash when using the popup menu for spell correction.  The
12             popup menu appears twice when letting go of the right mouse button
13             early.
14 Solution:   Don't show the popup menu on the release of the right mouse
15             button.  Also check that a menu pointer is actually valid.
16 Files:      src/proto/menu.pro, src/menu.c, src/normal.c, src/term.c
17
18
19 *** ../vim-7.0.061/src/proto/menu.pro   Fri Mar 24 23:37:59 2006
20 --- src/proto/menu.pro  Wed Aug 16 20:25:57 2006
21 ***************
22 *** 10,15 ****
23 --- 10,16 ----
24   extern int menu_is_child_of_popup __ARGS((vimmenu_T *menu));
25   extern int menu_is_toolbar __ARGS((char_u *name));
26   extern int menu_is_separator __ARGS((char_u *name));
27 + extern int check_menu_pointer __ARGS((vimmenu_T *root, vimmenu_T *menu_to_check));
28   extern void gui_create_initial_menus __ARGS((vimmenu_T *menu));
29   extern void gui_update_menus __ARGS((int modes));
30   extern int gui_is_menu_shortcut __ARGS((int key));
31 *** ../vim-7.0.061/src/menu.c   Wed Aug 16 15:56:58 2006
32 --- src/menu.c  Wed Aug 16 20:35:09 2006
33 ***************
34 *** 1778,1783 ****
35 --- 1778,1804 ----
36   }
37   
38   /*
39 +  * Check that a pointer appears in the menu tree.  Used to protect from using
40 +  * a menu that was deleted after it was selected but before the event was
41 +  * handled.
42 +  * Return OK or FAIL.  Used recursively.
43 +  */
44 +     int
45 + check_menu_pointer(root, menu_to_check)
46 +     vimmenu_T *root;
47 +     vimmenu_T *menu_to_check;
48 + {
49 +     vimmenu_T *p;
50
51 +     for (p = root; p != NULL; p = p->next)
52 +       if (p == menu_to_check
53 +               || (p->children != NULL
54 +                   && check_menu_pointer(p->children, menu_to_check) == OK))
55 +           return OK;
56 +     return FAIL;
57 + }
58
59 + /*
60    * After we have started the GUI, then we can create any menus that have been
61    * defined.  This is done once here.  add_menu_path() may have already been
62    * called to define these menus, and may be called again.  This function calls
63 *** ../vim-7.0.061/src/normal.c Sat Apr 29 23:53:55 2006
64 --- src/normal.c        Wed Aug 16 19:54:04 2006
65 ***************
66 *** 2504,2510 ****
67              * NOTE: Ignore right button down and drag mouse events.
68              * Windows only shows the popup menu on the button up event.
69              */
70 ! #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON)
71             if (!is_click)
72                 return FALSE;
73   #endif
74 --- 2504,2511 ----
75              * NOTE: Ignore right button down and drag mouse events.
76              * Windows only shows the popup menu on the button up event.
77              */
78 ! #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_GTK) \
79 !                         || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC)
80             if (!is_click)
81                 return FALSE;
82   #endif
83 *** ../vim-7.0.061/src/term.c   Wed May  3 23:26:49 2006
84 --- src/term.c  Wed Aug 16 21:24:21 2006
85 ***************
86 *** 4783,4788 ****
87 --- 4783,4796 ----
88                 return -1;
89             current_menu = (vimmenu_T *)val;
90             slen += num_bytes;
91
92 +           /* The menu may have been deleted right after it was used, check
93 +            * for that. */
94 +           if (check_menu_pointer(root_menu, current_menu) == FAIL)
95 +           {
96 +               key_name[0] = KS_EXTRA;
97 +               key_name[1] = (int)KE_IGNORE;
98 +           }
99         }
100   # endif
101   # ifdef FEAT_GUI_TABLINE
102 *** ../vim-7.0.061/src/version.c        Wed Aug 16 21:26:19 2006
103 --- src/version.c       Wed Aug 16 21:40:37 2006
104 ***************
105 *** 668,669 ****
106 --- 668,671 ----
107   {   /* Add new patch number below this line */
108 + /**/
109 +     62,
110   /**/
111
112 -- 
113 hundred-and-one symptoms of being an internet addict:
114 166. You have been on your computer soo long that you didn't realize
115      you had grandchildren.
116
117  /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
118 ///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
119 \\\        download, build and distribute -- http://www.A-A-P.org        ///
120  \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
This page took 0.039116 seconds and 3 git commands to generate.