menu = [[EmacsMenu alloc] initWithTitle: ns_app_name];
needsSet = YES;
}
- else
- { /* close up anything on there */
- id attMenu = [menu attachedMenu];
- if (attMenu != nil)
- [attMenu close];
- }
#if NSMENUPROFILE
ftime (&tb);
========================================================================== */
-struct Popdown_data
-{
- NSAutoreleasePool *pool;
- EmacsDialogPanel *dialog;
-};
-
static void
pop_down_menu (void *arg)
{
- struct Popdown_data *unwind_data = arg;
+ EmacsDialogPanel *panel = arg;
- block_input ();
if (popup_activated_flag)
{
- EmacsDialogPanel *panel = unwind_data->dialog;
+ block_input ();
popup_activated_flag = 0;
[panel close];
- [unwind_data->pool release];
[[FRAME_NS_VIEW (SELECTED_FRAME ()) window] makeKeyWindow];
+ unblock_input ();
}
-
- xfree (unwind_data);
- unblock_input ();
}
Lisp_Object tem, title;
NSPoint p;
BOOL isQ;
- NSAutoreleasePool *pool;
NSTRACE ("ns_popup_dialog");
contents = list2 (title, Fcons (build_string ("Ok"), Qt));
block_input ();
- pool = [[NSAutoreleasePool alloc] init];
dialog = [[EmacsDialogPanel alloc] initFromContents: contents
isQuestion: isQ];
{
ptrdiff_t specpdl_count = SPECPDL_INDEX ();
- struct Popdown_data *unwind_data = xmalloc (sizeof (*unwind_data));
-
- unwind_data->pool = pool;
- unwind_data->dialog = dialog;
- record_unwind_protect_ptr (pop_down_menu, unwind_data);
+ record_unwind_protect_ptr (pop_down_menu, dialog);
popup_activated_flag = 1;
tem = [dialog runDialogAt: p];
unbind_to (specpdl_count, Qnil); /* calls pop_down_menu */