]> granicus.if.org Git - python/commitdiff
- Restore SIOUX menubar just before exiting, if the console window is kept
authorJack Jansen <jack.jansen@cwi.nl>
Thu, 12 Jun 1997 10:49:13 +0000 (10:49 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Thu, 12 Jun 1997 10:49:13 +0000 (10:49 +0000)
  open (so the user can quit with cmd-Q, print, etc)
- Removed a few unused routines

Mac/Python/macglue.c
Mac/Python/macmain.c

index 5d7c2c7c9869be56eb1814afac3297bd2964eb73..033e02e96753fe1a8ec3f0da765b81bf6d305cf0 100644 (file)
@@ -159,6 +159,11 @@ int PyMac_DoYieldEnabled = 1;
 */
 int PyMac_ConsoleIsDead;
 
+/*
+** Sioux menu bar, saved early so we can restore it
+*/
+static Handle sioux_mbar;
+
 /*
 ** Some stuff for our GetDirectory and PromptGetFile routines
 */
@@ -415,8 +420,6 @@ scan_event_queue(flush)
        }
 }
 
-#define TICKCOUNT 6
-
 int
 PyOS_InterruptOccurred()
 {
@@ -426,6 +429,7 @@ PyOS_InterruptOccurred()
                        schedparams.next_check = (unsigned long)LMGetTicks()
                                         + schedparams.check_interval;
                        if (interrupted) {
+                               scan_event_queue(1);    /* Eat events up to cmd-. */
                                interrupted = 0;
                                return 1;
                        }
@@ -434,23 +438,6 @@ PyOS_InterruptOccurred()
        return 0;
 }
 
-#if 0
-
-/* intrpeek() is like intrcheck(), but it doesn't flush the events. The
-** idea is that you call intrpeek() somewhere in a busy-wait loop, and return
-** None as soon as it returns 1. The mainloop will then pick up the cmd-. soon
-** thereafter.
-*/
-static int
-intrpeek()
-{
-#ifdef THINK_C
-       scan_event_queue(0);
-#endif
-       return interrupted;
-}
-#endif
-
 /* Check whether we are in the foreground */
 int
 PyMac_InForeground()
@@ -505,6 +492,7 @@ PyMac_HandleEvent(evp, maycallpython)
                }
        }
 #endif /* !__MWERKS__ */
+       printf("not handled\n");
 }
 
 /*
@@ -596,20 +584,36 @@ PyMac_SetSchedParams(PyMacSchedParams *sp)
                schedparams.enabled = 0;
        schedparams.next_check = 0;     /* Check immedeately */
 }
+
 /*
 ** Install our menu bar.
 */
 void
 PyMac_InitMenuBar()
 {
-       Handle bar;
        MenuHandle applemenu;
        
-       if ( (bar=GetMenuBar()) == NULL ) return;
+       if ( (sioux_mbar=GetMenuBar()) == NULL )  {
+               /* Sioux menu not installed yet. Do so */
+               SIOUXSetupMenus();
+               if ( (sioux_mbar=GetMenuBar()) == NULL )
+                       return;
+       }
        if ( (applemenu=GetMenuHandle(SIOUX_APPLEID)) == NULL ) return;
        SetMenuItemText(applemenu, 1, "\pAbout Python...");
 }
 
+/*
+** Restore sioux menu bar
+*/
+void
+PyMac_RestoreMenuBar()
+{
+       if ( sioux_mbar )
+               SetMenuBar(sioux_mbar);
+}
+
+
 /*
 ** Our replacement about box
 */
index 8fd7bd20eab0908324533129092a6ca53ba1bd1c..49563a379699bf13355b0962e7a2d559ae1a9f1f 100644 (file)
@@ -214,6 +214,7 @@ init_common(int *argcp, char ***argvp, int embedded)
 
 #ifdef USE_SIOUX
        /* Set various SIOUX flags. Some are changed later based on options */
+/*     SIOUXSettings.standalone = 0;   /* XXXX Attempting to keep sioux from eating events */
        SIOUXSettings.asktosaveonclose = 0;
        SIOUXSettings.showstatusline = 0;
        SIOUXSettings.tabspaces = 4;
@@ -462,6 +463,7 @@ PyMac_Exit(status)
                SIOUXSettings.standalone = 1;
                SIOUXSettings.autocloseonquit = 0;
                SIOUXSetTitle("\p\307terminated\310");
+               PyMac_RestoreMenuBar();
 #ifdef USE_MSL
                /*
                ** Temporary workaround: autocloseonquit clearing does not