<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/5fba7de5f97a1873312666f8ccddd0de79bd7fbb">https://github.com/macports/macports-ports/commit/5fba7de5f97a1873312666f8ccddd0de79bd7fbb</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 5fba7de5f97 tk +quartz: backport fix for crash
</span>5fba7de5f97 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 5fba7de5f97a1873312666f8ccddd0de79bd7fbb
</span>Author: Christopher Chavez <chrischavez@gmx.us>
AuthorDate: Wed Aug 30 18:35:13 2023 -0500

<span style='display:block; white-space:pre;color:#404040;'>    tk +quartz: backport fix for crash
</span>---
 x11/tk/Portfile                 |  5 ++-
 x11/tk/files/fix-kvo-crash.diff | 83 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 87 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/tk/Portfile b/x11/tk/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 7bf0ee86708..0342a2d5114 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/x11/tk/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/x11/tk/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,7 @@ PortGroup           muniversal 1.1
</span> 
 name                tk
 version             8.6.13
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            2
</span> categories          x11
 license             Tcl/Tk
 maintainers         {mcalhoun @MarcusCalhoun-Lopez} openmaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -44,6 +44,9 @@ patchfiles-append   patch-dyld_fallback_library_path.diff
</span> # Fix for https://core.tcl-lang.org/tk/info/310c74ecf4
 patchfiles-append   fix-themechanged-error.patch
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Fix for https://core.tcl-lang.org/tk/info/ef5d3e29a429
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   fix-kvo-crash.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # https://github.com/tcltk/tk/commit/b0cb1a48cb0c4a0118d45e8804476a6b4ab502c8
 # this is the only code that fails on OSX 10.6, so enable it for 10.7 or newer only; see also
 # https://developer.apple.com/documentation/quartzcore/calayer/1410746-contentsscale
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/x11/tk/files/fix-kvo-crash.diff b/x11/tk/files/fix-kvo-crash.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c7491a06abf
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/x11/tk/files/fix-kvo-crash.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,83 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git macosx/tkMacOSXWindowEvent.c macosx/tkMacOSXWindowEvent.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c0f8afc94..e261bee71 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- macosx/tkMacOSXWindowEvent.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macosx/tkMacOSXWindowEvent.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -239,8 +239,8 @@ extern NSString *NSWindowDidOrderOffScreenNotification;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (winPtr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   TKContentView *view = [window contentView];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if MAC_OS_X_VERSION_MAX_ALLOWED >= 101500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (@available(macOS 10.15, *)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MAX_ALLOWED >= 101400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (@available(macOS 10.14, *)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       [view viewDidChangeEffectiveAppearance];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1237,29 +1237,8 @@ static const char *const accentNames[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (effectiveAppearanceName == NSAppearanceNameDarkAqua) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   TkSendVirtualEvent(tkwin, "DarkAqua", NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if ([NSApp macOSVersion] < 101500) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   * Mojave cannot handle the KVO shenanigans that we need for the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   * highlight and accent color notifications.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (!defaultColor) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   defaultColor = [NSApp macOSVersion] < 110000 ? "Blue" : "Multicolor";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  preferences = [[NSUserDefaults standardUserDefaults] retain];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   * AppKit calls this method when the user changes the Accent Color
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   * but not when the user changes the Highlight Color.  So we register
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   * to receive KVO notifications for Highlight Color as well.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  [preferences addObserver:self
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                forKeyPath:@"AppleHighlightColor"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                   options:NSKeyValueObservingOptionNew
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                   context:NULL];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSString *accent = [preferences stringForKey:@"AppleAccentColor"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSArray *words = [[preferences stringForKey:@"AppleHighlightColor"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git macosx/tkMacOSXWm.c macosx/tkMacOSXWm.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8b72faf16..75ebdbc1c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- macosx/tkMacOSXWm.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macosx/tkMacOSXWm.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1289,6 +1289,11 @@ TkWmDeadWindow(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       [NSApp _setMainWindow:nil];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   [deadNSWindow close];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MAX_ALLOWED >= 101400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  [preferences removeObserver:deadNSWindow.contentView
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                forKeyPath:@"AppleHighlightColor"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   [deadNSWindow release];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if DEBUG_ZOMBIES > 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6763,6 +6768,21 @@ TkMacOSXMakeRealWindowExist(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     TKContentView *contentView = [[TKContentView alloc]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                initWithFrame:NSZeroRect];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MAX_ALLOWED >= 101400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     * AppKit calls the viewDidChangeEffectiveAppearance method when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     * user changes the Accent Color but not when the user changes the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     * Highlight Color.  So we register to receive KVO notifications for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     * Highlight Color as well.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    [preferences addObserver:contentView
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            forKeyPath:@"AppleHighlightColor"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               options:NSKeyValueObservingOptionNew
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               context:NULL];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     [window setContentView:contentView];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     [contentView release];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     [window setDelegate:NSApp];
</span></pre><pre style='margin:0'>

</pre>