emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/macmenu.c,v


From: YAMAMOTO Mitsuharu
Subject: [Emacs-diffs] Changes to emacs/src/macmenu.c,v
Date: Mon, 06 Aug 2007 08:25:30 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     YAMAMOTO Mitsuharu <mituharu>   07/08/06 08:25:30

Index: macmenu.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/macmenu.c,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -b -r1.62 -r1.63
--- macmenu.c   26 Jul 2007 05:27:54 -0000      1.62
+++ macmenu.c   6 Aug 2007 08:25:30 -0000       1.63
@@ -2331,6 +2331,7 @@
   ((value) + DIALOG_BUTTON_COMMAND_ID_OFFSET)
 
 extern EMACS_TIME timer_check P_ ((int));
+static int quit_dialog_event_loop;
 
 static pascal OSStatus
 mac_handle_dialog_event (next_handler, event, data)
@@ -2340,7 +2341,6 @@
 {
   OSStatus err, result = eventNotHandledErr;
   WindowRef window = (WindowRef) data;
-  int quit_event_loop_p = 0;
 
   switch (GetEventClass (event))
     {
@@ -2355,7 +2355,7 @@
          if (DIALOG_BUTTON_COMMAND_ID_P (command.commandID))
            {
              SetWRefCon (window, command.commandID);
-             quit_event_loop_p = 1;
+             quit_dialog_event_loop = 1;
              break;
            }
 
@@ -2379,7 +2379,7 @@
          switch (char_code)
            {
            case kEscapeCharCode:
-             quit_event_loop_p = 1;
+             quit_dialog_event_loop = 1;
              break;
 
            default:
@@ -2395,7 +2395,7 @@
                                           NULL, &key_code);
                if (err == noErr)
                  if (mac_quit_char_key_p (modifiers, key_code))
-                   quit_event_loop_p = 1;
+                   quit_dialog_event_loop = 1;
              }
              break;
            }
@@ -2406,7 +2406,7 @@
       abort ();
     }
 
-  if (quit_event_loop_p)
+  if (quit_dialog_event_loop)
     {
       err = QuitEventLoop (GetCurrentEventLoop ());
       if (err == noErr)
@@ -2733,6 +2733,7 @@
     {
       EventTargetRef toolbox_dispatcher = GetEventDispatcherTarget ();
 
+      quit_dialog_event_loop = 0;
       while (1)
        {
          EMACS_TIME next_time = timer_check (1);
@@ -2758,12 +2759,22 @@
              SendEventToEventTarget (event, toolbox_dispatcher);
              ReleaseEvent (event);
            }
+#ifdef MAC_OSX
          else if (err != eventLoopTimedOutErr)
            {
              if (err == eventLoopQuitErr)
                err = noErr;
              break;
            }
+#else
+         /* The return value of ReceiveNextEvent seems to be
+            unreliable.  Use our own global variable instead.  */
+         if (quit_dialog_event_loop)
+           {
+             err = noErr;
+             break;
+           }
+#endif
        }
     }
   if (err == noErr)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]