diff options
| author | Miles Bader | 2007-08-13 13:48:35 +0000 |
|---|---|---|
| committer | Miles Bader | 2007-08-13 13:48:35 +0000 |
| commit | b2e6b10fe2d40020a75ab0025af98a4abf339cd2 (patch) | |
| tree | db265e5ea93cdc13f8e3b54ed5c7ad2869d50ec9 /src/macmenu.c | |
| parent | 905350bef3ebc514a418658dd155c1d062664b56 (diff) | |
| parent | 37cc095b6a175fb5a2fb18fa029eaf3aa3b3fa53 (diff) | |
| download | emacs-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.c | 21 |
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 | ||
| 2333 | extern EMACS_TIME timer_check P_ ((int)); | 2333 | extern EMACS_TIME timer_check P_ ((int)); |
| 2334 | static int quit_dialog_event_loop; | ||
| 2334 | 2335 | ||
| 2335 | static pascal OSStatus | 2336 | static pascal OSStatus |
| 2336 | mac_handle_dialog_event (next_handler, event, data) | 2337 | mac_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) |