diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 1995-02-02 14:25:56 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 1995-02-02 14:25:56 (GMT) |
commit | a76382a6ac56b35def05f23740e55dc064eb15e7 (patch) | |
tree | 422f6be5564e54f4d9e9a58a0903d7b2f66606c0 /Mac/Python/macglue.c | |
parent | 8828fcf7383aa38539fd331d9b93138c156f8810 (diff) | |
download | cpython-a76382a6ac56b35def05f23740e55dc064eb15e7.zip cpython-a76382a6ac56b35def05f23740e55dc064eb15e7.tar.gz cpython-a76382a6ac56b35def05f23740e55dc064eb15e7.tar.bz2 |
Added HandleEvent method to macos, so python programs can hand back
events they don't want to handle to stdio
Diffstat (limited to 'Mac/Python/macglue.c')
-rw-r--r-- | Mac/Python/macglue.c | 35 |
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(); } |