Tk Source Code

Artifact [72aa1efd]
Login

Artifact 72aa1efd38fdd8f63ff4eb79401bed0ea130528e64c6d9fcd0fc6d76e0f1f80c:

Attachment "6da885404a6e.diff" to ticket [6da88540] added by chrstphrchvz 2022-08-28 20:11:29.
diff --git macosx/tkMacOSXWindowEvent.c macosx/tkMacOSXWindowEvent.c
index e737f5e2f..4351d63d7 100644
--- macosx/tkMacOSXWindowEvent.c
+++ macosx/tkMacOSXWindowEvent.c
@@ -331,6 +331,7 @@ extern NSString *NSWindowDidOrderOffScreenNotification;
 static void RefocusGrabWindow(void *data) {
     TkWindow *winPtr = (TkWindow *) data;
     TkpChangeFocus(winPtr, 1);
+    Tcl_Release(winPtr);
 }
 
 #pragma mark TKApplication(TKApplicationEvent)
@@ -365,6 +366,7 @@ static void RefocusGrabWindow(void *data) {
 	    [win orderOut:NSApp];
 	}
 	if (winPtr->dispPtr->grabWinPtr == winPtr) {
+	    Tcl_Preserve(winPtr);
 	    Tcl_DoWhenIdle(RefocusGrabWindow, winPtr);
 	} else {
 	    [[self keyWindow] orderFront: self];