diff --git a/Mac/Python/macglue.c b/Mac/Python/macglue.c index 5d7c2c7c986..033e02e9675 100644 --- a/Mac/Python/macglue.c +++ b/Mac/Python/macglue.c @@ -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 */ diff --git a/Mac/Python/macmain.c b/Mac/Python/macmain.c index 8fd7bd20eab..49563a37969 100644 --- a/Mac/Python/macmain.c +++ b/Mac/Python/macmain.c @@ -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