/* Menu support for GNU Emacs on the Microsoft W32 API.
Copyright (C) 1986, 1988, 1993, 1994, 1996, 1998, 1999, 2002, 2003,
- 2004, 2005 Free Software Foundation, Inc.
+ 2004, 2005, 2006 Free Software Foundation, Inc.
This file is part of GNU Emacs.
}
#ifdef HAVE_MENUS
- /* If resources from a previous popup menu exist yet, does nothing
- until the `menu_free_timer' has freed them (see w32fns.c).
+ /* If resources from a previous popup menu still exist, does nothing
+ until the `menu_free_timer' has freed them (see w32fns.c). This
+ can occur if you press ESC or click outside a menu without selecting
+ a menu item.
*/
if (current_popup_menu)
{
UNBLOCK_INPUT;
discard_menu_items ();
+ w32_free_menu_strings (FRAME_W32_WINDOW (f));
+
#endif /* HAVE_MENUS */
UNGCPRO;
}
}
}
+ else if (!for_click)
+ /* Make "Cancel" equivalent to C-g. */
+ Fsignal (Qquit, Qnil);
return Qnil;
}
}
}
}
+ else
+ /* Make "Cancel" equivalent to C-g. */
+ Fsignal (Qquit, Qnil);
return Qnil;
}