summaryrefslogtreecommitdiffstats
path: root/Mac/Python/macglue.c
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Python/macglue.c')
-rw-r--r--Mac/Python/macglue.c35
1 files changed, 23 insertions, 12 deletions
diff --git a/Mac/Python/macglue.c b/Mac/Python/macglue.c
index a99023b..98a5c7b 100644
--- a/Mac/Python/macglue.c
+++ b/Mac/Python/macglue.c
@@ -267,13 +267,34 @@ PyMac_SetYield(long fgi, long fgy, long bgi, long bgy)
}
/*
+** Handle an event, either one found in the mainloop eventhandler or
+** one passed back from the python program.
+*/
+void
+PyMac_HandleEvent(evp)
+ EventRecord *evp;
+{
+ WindowPtr wp;
+
+#ifdef __MWERKS__
+ /* If SIOUX wants it we're done */
+ (void)SIOUXHandleOneEvent(evp);
+#else
+ /* Other compilers are just unlucky: we only weed out clicks in other applications */
+ if ( evp->what == mouseDown ) {
+ if ( FindWindow(evp->where, &wp) == inSysWindow )
+ SystemClick(evp, wp);
+ }
+#endif /* !__MWERKS__ */
+}
+
+/*
** Yield the CPU to other tasks.
*/
static
PyMac_DoYield()
{
EventRecord ev;
- WindowPtr wp;
long yield;
static int no_waitnextevent = -1;
int gotone;
@@ -306,17 +327,7 @@ PyMac_DoYield()
/* Get out quickly if nothing interesting is happening */
if ( !gotone || ev.what == nullEvent )
break;
-
-#ifdef __MWERKS__
- /* If SIOUX wants it we're done too */
- (void)SIOUXHandleOneEvent(&ev);
-#else
- /* Other compilers are just unlucky: we only weed out clicks in other applications */
- if ( ev.what == mouseDown ) {
- if ( FindWindow(ev.where, &wp) == inSysWindow )
- SystemClick(&ev, wp);
- }
-#endif /* !__MWERKS__ */
+ PyMac_HandleEvent(&ev);
}
lastyield = TickCount();
}