summaryrefslogtreecommitdiffstats
path: root/Mac
diff options
context:
space:
mode:
Diffstat (limited to 'Mac')
-rw-r--r--Mac/Python/macglue.c46
-rw-r--r--Mac/Python/macmain.c2
2 files changed, 27 insertions, 21 deletions
diff --git a/Mac/Python/macglue.c b/Mac/Python/macglue.c
index 5d7c2c7..033e02e 100644
--- a/Mac/Python/macglue.c
+++ b/Mac/Python/macglue.c
@@ -160,6 +160,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
*/
struct hook_args {
@@ -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,21 +584,37 @@ 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
*/
void
diff --git a/Mac/Python/macmain.c b/Mac/Python/macmain.c
index 8fd7bd2..49563a3 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