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:
30
src/nsmenu.m
30
src/nsmenu.m
@@ -758,6 +758,32 @@ prettify_key (const char *key)
|
||||
: 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 @@ prettify_key (const char *key)
|
||||
{
|
||||
return NSZeroRect;
|
||||
}
|
||||
|
||||
- (void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
@end /* EmacsMenu */
|
||||
|
||||
Reference in New Issue
Block a user