If the frontmost window is not a Tk window exit the event handling code early. This fixes that using Tk once used to disable cmd-. processing. It may also influence Tk/IDE interaction, I'm not sure.
diff --git a/Mac/tclmods/tclMacNotify.c b/Mac/tclmods/tclMacNotify.c
index 8fc313a..3d2695c 100644
--- a/Mac/tclmods/tclMacNotify.c
+++ b/Mac/tclmods/tclMacNotify.c
@@ -83,6 +83,22 @@
 			    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 && !TkMacGetXWindow(windowRef) ) {
+    	return 0;
+    }
+}
+/*
  *----------------------------------------------------------------------
  *
  * InitNotifier --
@@ -156,6 +172,8 @@
     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.
@@ -191,11 +209,13 @@
      */
 
     while (needsUpdate || (GetEvQHdr()->qHead != NULL)) {
+    	/* Give Python command-. handling a chance */
+	PyMac_DoYield(0, 0);
+	
 	GetGlobalMouse(&currentMouse);
 	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)
@@ -327,6 +347,8 @@
 		found = 1;
 	}
 
+	if ( !TkIsTheBoss() )
+		found = 1;
 	/*
 	 * Check for window events.  We may receive a NULL event for
 	 * various reasons. 1) the timer has expired, 2) a mouse moved