]> git.pld-linux.org Git - packages/vim.git/blame - 7.0.062
- updated to 0.7.3
[packages/vim.git] / 7.0.062
CommitLineData
a328bbc4
AG
1To: vim-dev@vim.org
2Subject: Patch 7.0.062
3Fcc: outbox
4From: Bram Moolenaar <Bram@moolenaar.net>
5Mime-Version: 1.0
6Content-Type: text/plain; charset=ISO-8859-1
7Content-Transfer-Encoding: 8bit
8------------
9
10Patch 7.0.062
11Problem: 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.
14Solution: Don't show the popup menu on the release of the right mouse
15 button. Also check that a menu pointer is actually valid.
16Files: 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--
113hundred-and-one symptoms of being an internet addict:
114166. 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.406994 seconds and 4 git commands to generate.