Got rid of the whole event filtering mess again, I can't get it to work. Simply disabling the Tk event handling hook in _tkinter is not as nice, but at least it works.
diff --git a/Mac/tclmods/tclMacNotify.c b/Mac/tclmods/tclMacNotify.c
index d8737ae..8fc313a 100644
--- a/Mac/tclmods/tclMacNotify.c
+++ b/Mac/tclmods/tclMacNotify.c
@@ -83,24 +83,6 @@
ClientData clientData));
/*
-** Routine to determine whether Tk is the "main event handler" at the moment or
-** something else (MacPython, IDE) is.
-** Currently we only check that the frontmost window is Tk based, it may be better
-** to also check whether we're inside a Tk mainloop().
-*/
-static int
-TkIsTheBoss(void)
-{
- WindowRef windowRef;
-
- windowRef = FrontWindow();
- if ( !windowRef )
- return 0;
- if ( TkMacGetXWindow(windowRef) )
- return 1;
- return 0;
-}
-/*
*----------------------------------------------------------------------
*
* InitNotifier --
@@ -174,8 +156,6 @@
WindowRef windowRef;
Rect mouseRect;
- if ( !TkIsTheBoss() )
- return 0;
/*
* Check for mouse moved events. These events aren't placed on the
* system event queue unless we call WaitNextEvent.
@@ -211,13 +191,11 @@
*/
while (needsUpdate || (GetEvQHdr()->qHead != NULL)) {
- /* Give Python command-. handling a chance */
- PyMac_DoYield(0, 0);
-
GetGlobalMouse(¤tMouse);
SetRect(&mouseRect, currentMouse.h, currentMouse.v,
currentMouse.h + 1, currentMouse.v + 1);
RectRgn(notifier.utilityRgn, &mouseRect);
+
WaitNextEvent(everyEvent, &theEvent, 5, notifier.utilityRgn);
needsUpdate = 0;
if ((notifier.eventProcPtr != NULL)