aboutsummaryrefslogtreecommitdiffstats
path: root/src/macmenu.c
diff options
context:
space:
mode:
authorMiles Bader2007-08-13 13:48:35 +0000
committerMiles Bader2007-08-13 13:48:35 +0000
commitb2e6b10fe2d40020a75ab0025af98a4abf339cd2 (patch)
treedb265e5ea93cdc13f8e3b54ed5c7ad2869d50ec9 /src/macmenu.c
parent905350bef3ebc514a418658dd155c1d062664b56 (diff)
parent37cc095b6a175fb5a2fb18fa029eaf3aa3b3fa53 (diff)
downloademacs-b2e6b10fe2d40020a75ab0025af98a4abf339cd2.tar.gz
emacs-b2e6b10fe2d40020a75ab0025af98a4abf339cd2.zip
Merge from emacs--devo--0
Patches applied: * emacs--devo--0 (patch 846-851) - Update from CVS - Merge from emacs--rel--22 * emacs--rel--22 (patch 88-92) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 242-244) - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-246
Diffstat (limited to 'src/macmenu.c')
-rw-r--r--src/macmenu.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/macmenu.c b/src/macmenu.c
index e2d4ba8be38..883a8463c2d 100644
--- a/src/macmenu.c
+++ b/src/macmenu.c
@@ -2331,6 +2331,7 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error)
2331 ((value) + DIALOG_BUTTON_COMMAND_ID_OFFSET) 2331 ((value) + DIALOG_BUTTON_COMMAND_ID_OFFSET)
2332 2332
2333extern EMACS_TIME timer_check P_ ((int)); 2333extern EMACS_TIME timer_check P_ ((int));
2334static int quit_dialog_event_loop;
2334 2335
2335static pascal OSStatus 2336static pascal OSStatus
2336mac_handle_dialog_event (next_handler, event, data) 2337mac_handle_dialog_event (next_handler, event, data)
@@ -2340,7 +2341,6 @@ mac_handle_dialog_event (next_handler, event, data)
2340{ 2341{
2341 OSStatus err, result = eventNotHandledErr; 2342 OSStatus err, result = eventNotHandledErr;
2342 WindowRef window = (WindowRef) data; 2343 WindowRef window = (WindowRef) data;
2343 int quit_event_loop_p = 0;
2344 2344
2345 switch (GetEventClass (event)) 2345 switch (GetEventClass (event))
2346 { 2346 {
@@ -2355,7 +2355,7 @@ mac_handle_dialog_event (next_handler, event, data)
2355 if (DIALOG_BUTTON_COMMAND_ID_P (command.commandID)) 2355 if (DIALOG_BUTTON_COMMAND_ID_P (command.commandID))
2356 { 2356 {
2357 SetWRefCon (window, command.commandID); 2357 SetWRefCon (window, command.commandID);
2358 quit_event_loop_p = 1; 2358 quit_dialog_event_loop = 1;
2359 break; 2359 break;
2360 } 2360 }
2361 2361
@@ -2379,7 +2379,7 @@ mac_handle_dialog_event (next_handler, event, data)
2379 switch (char_code) 2379 switch (char_code)
2380 { 2380 {
2381 case kEscapeCharCode: 2381 case kEscapeCharCode:
2382 quit_event_loop_p = 1; 2382 quit_dialog_event_loop = 1;
2383 break; 2383 break;
2384 2384
2385 default: 2385 default:
@@ -2395,7 +2395,7 @@ mac_handle_dialog_event (next_handler, event, data)
2395 NULL, &key_code); 2395 NULL, &key_code);
2396 if (err == noErr) 2396 if (err == noErr)
2397 if (mac_quit_char_key_p (modifiers, key_code)) 2397 if (mac_quit_char_key_p (modifiers, key_code))
2398 quit_event_loop_p = 1; 2398 quit_dialog_event_loop = 1;
2399 } 2399 }
2400 break; 2400 break;
2401 } 2401 }
@@ -2406,7 +2406,7 @@ mac_handle_dialog_event (next_handler, event, data)
2406 abort (); 2406 abort ();
2407 } 2407 }
2408 2408
2409 if (quit_event_loop_p) 2409 if (quit_dialog_event_loop)
2410 { 2410 {
2411 err = QuitEventLoop (GetCurrentEventLoop ()); 2411 err = QuitEventLoop (GetCurrentEventLoop ());
2412 if (err == noErr) 2412 if (err == noErr)
@@ -2733,6 +2733,7 @@ create_and_show_dialog (f, first_wv)
2733 { 2733 {
2734 EventTargetRef toolbox_dispatcher = GetEventDispatcherTarget (); 2734 EventTargetRef toolbox_dispatcher = GetEventDispatcherTarget ();
2735 2735
2736 quit_dialog_event_loop = 0;
2736 while (1) 2737 while (1)
2737 { 2738 {
2738 EMACS_TIME next_time = timer_check (1); 2739 EMACS_TIME next_time = timer_check (1);
@@ -2758,12 +2759,22 @@ create_and_show_dialog (f, first_wv)
2758 SendEventToEventTarget (event, toolbox_dispatcher); 2759 SendEventToEventTarget (event, toolbox_dispatcher);
2759 ReleaseEvent (event); 2760 ReleaseEvent (event);
2760 } 2761 }
2762#ifdef MAC_OSX
2761 else if (err != eventLoopTimedOutErr) 2763 else if (err != eventLoopTimedOutErr)
2762 { 2764 {
2763 if (err == eventLoopQuitErr) 2765 if (err == eventLoopQuitErr)
2764 err = noErr; 2766 err = noErr;
2765 break; 2767 break;
2766 } 2768 }
2769#else
2770 /* The return value of ReceiveNextEvent seems to be
2771 unreliable. Use our own global variable instead. */
2772 if (quit_dialog_event_loop)
2773 {
2774 err = noErr;
2775 break;
2776 }
2777#endif
2767 } 2778 }
2768 } 2779 }
2769 if (err == noErr) 2780 if (err == noErr)