"Nico Francois" writes: > Don't know if this will make it in time for the next mini-release, > but I've made two more fixes based on comments from one of my > colleagues: > > 1) The following (while not documented) seems to be TRUE: > > - If a PANE is of the form ("" ITEM1 ITEM2 ...), then ITEM1, > ITEM2, etc., are placed in the main panel instead of a subpanel. > > I've been able to "fix" this for old-style x-popup-menu calls as I'm > not sure this needs to be fixed for (list of) keymap menus and if so > how to do it there :) Is this in the manual somewhere, or is it simply an undocumented feature? Is this only true in old-style menus? > 2) The following is documented in x-popup-menu: > > - Each ITEM is normally a cons cell (STRING . VALUE); but a string can > appear as an item--that makes a nonselectable line in the menu. > > This did not work in NT Emacs. The reason was simple: list_of_menus() > was calling add_menu_items() with the wrong argument ('enable' is a > UINT, not a lisp object). Isn't it high time Emacs source started > to use real function prototypes so bugs like these are caught at > compile time ? ;-) Thanks, you are correct. This bug is a holdover from the previous version. (Not that that excuses me for missing it!) Here is a patch on top of my previously posted patch for this. (Based on what Nico wrote, with a Changelog entry.) *** c:/users/md5i/tmp/emacs-19.34/src/w32menu.c.orig.2 Wed May 07 14:21:58 1997 --- c:/users/md5i/tmp/emacs-19.34/src/w32menu.c Wed May 07 14:26:04 1997 *************** *** 692,698 **** { item = Fcar (tail); if (STRINGP (item)) ! add_menu_item (lpmm, hmenu, item, Qnil, Qnil, Qnil); else if (NILP (item)) add_left_right_boundary (); else --- 692,698 ---- { item = Fcar (tail); if (STRINGP (item)) ! add_menu_item (lpmm, hmenu, item, 0, Qnil, Qnil); else if (NILP (item)) add_left_right_boundary (); else *************** *** 700,706 **** CHECK_CONS (item, 0); item1 = Fcar (item); CHECK_STRING (item1, 1); ! add_menu_item (lpmm, hmenu, item1, Qt, Fcdr (item), Qnil); } } --- 700,706 ---- CHECK_CONS (item, 0); item1 = Fcar (item); CHECK_STRING (item1, 1); ! add_menu_item (lpmm, hmenu, item1, 1, Fcdr (item), Qnil); } } *** c:/users/md5i/tmp/emacs-19.34/src/ChangeLog~ Tue May 06 15:15:15 1997 --- c:/users/md5i/tmp/emacs-19.34/src/ChangeLog Wed May 07 14:39:45 1997 *************** *** 1,3 **** --- 1,8 ---- + Wed May 07 14:37:29 1997 Nico Francois + + * w32menu.c (list_of_items): use 1 and 0 instead of Qt and Qnil + for enable in add_menu_item + Tue May 06 14:57:55 1997 Michael Welsh Duggan * w32menu.c (win32menu_show): Call eat_mouse_events in order to -- Michael Duggan (md5i@schenley.com)