Add some menu bar help code on GNUstep
* src/nsmenu.m ([EmacsMenu menu:willHighlightItem:]): Implement help event generation for GNUstep.
This commit is contained in:
parent
15090d7c6f
commit
7e596463be
1 changed files with 26 additions and 4 deletions
30
src/nsmenu.m
30
src/nsmenu.m
|
@ -758,6 +758,32 @@ - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f
|
|||
: Qnil;
|
||||
}
|
||||
|
||||
#ifdef NS_IMPL_GNUSTEP
|
||||
/* The code below doesn't work on Mac OS X, because it runs a nested
|
||||
Carbon-related event loop to track menu bar movement.
|
||||
|
||||
But it works fine aside from that, so it will work on GNUstep if
|
||||
they start to call `willHighlightItem'. */
|
||||
- (void) menu: (NSMenu *) menu willHighlightItem: (NSMenuItem *) item
|
||||
{
|
||||
NSInteger idx = [item tag];
|
||||
struct frame *f = SELECTED_FRAME ();
|
||||
Lisp_Object vec = f->menu_bar_vector;
|
||||
Lisp_Object help, frame;
|
||||
|
||||
if (idx >= ASIZE (vec))
|
||||
return;
|
||||
|
||||
XSETFRAME (frame, f);
|
||||
help = AREF (vec, idx + MENU_ITEMS_ITEM_HELP);
|
||||
|
||||
if (STRINGP (help) || NILP (help))
|
||||
kbd_buffer_store_help_event (frame, help);
|
||||
|
||||
raise (SIGIO);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef NS_IMPL_GNUSTEP
|
||||
- (void) close
|
||||
{
|
||||
|
@ -809,10 +835,6 @@ - (NSRect)confinementRectForMenu:(NSMenu *)menu
|
|||
{
|
||||
return NSZeroRect;
|
||||
}
|
||||
|
||||
- (void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
@end /* EmacsMenu */
|
||||
|
|
Loading…
Add table
Reference in a new issue