<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/47fd80009f1a818281345d7158144a3037469004">https://github.com/macports/macports-ports/commit/47fd80009f1a818281345d7158144a3037469004</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 47fd80009f1 gtk3: add upstream patch
</span>47fd80009f1 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 47fd80009f1a818281345d7158144a3037469004
</span>Author: Christopher Nielsen <mascguy@github.com>
AuthorDate: Mon May 19 14:33:03 2025 -0400
<span style='display:block; white-space:pre;color:#404040;'> gtk3: add upstream patch
</span>---
gnome/gtk3/Portfile | 14 +++++----
gnome/gtk3/files/patch-gtk-menu-scale.diff | 47 ++++++++++++++++++++++++++++++
2 files changed, 56 insertions(+), 5 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gtk3/Portfile b/gnome/gtk3/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 9cbd212a65b..8c524a00943 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/gnome/gtk3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gtk3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13,11 +13,9 @@ name gtk3
</span> conflicts gtk3-devel
set my_name gtk3
version 3.24.49
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 1
</span> epoch 1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set proj_name gtk
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set branch [join [lrange [split ${version} .] 0 1] .]
</span> categories gnome x11
license LGPL-2.1+
maintainers {mascguy @mascguy} openmaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -29,6 +27,8 @@ long_description GTK+ is a highly usable, feature-rich toolkit for creating g
</span> programming languages, such as C++, Python and C#, among others.
homepage http://www.gtk.org/
<span style='display:block; white-space:pre;background:#e0ffe0;'>+set proj_name gtk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set branch [join [lrange [split ${version} .] 0 1] .]
</span> distname ${proj_name}-${version}
dist_subdir ${my_name}
use_xz yes
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -60,8 +60,8 @@ depends_lib-append \
</span> path:lib/pkgconfig/pango.pc:pango
depends_run-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:shared-mime-info \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:hicolor-icon-theme
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:hicolor-icon-theme \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:shared-mime-info
</span>
compiler.cxx_standard 2011
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -91,6 +91,10 @@ patchfiles-append patch-sincos.diff
</span> # *NOT* merged merge request: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8136
patchfiles-append patch-gtk-menu-crash.diff
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Upstream patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8342
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-gtk-menu-scale.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # gtk3 +quartz uses instancetype which is not available
# before approximately Xcode 4.6 (#49391)
# if building +x11 blacklist comilers that do not support C11
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gtk3/files/patch-gtk-menu-scale.diff b/gnome/gtk3/files/patch-gtk-menu-scale.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..5958ac17e27
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gtk3/files/patch-gtk-menu-scale.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,47 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gdk/quartz/gdkwindow-quartz.c gdk/quartz/gdkwindow-quartz.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5d6d522846..df2a8d051e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gdk/quartz/gdkwindow-quartz.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gdk/quartz/gdkwindow-quartz.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1185,8 +1185,41 @@ gdk_window_quartz_show (GdkWindow *window, gboolean already_mapped)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clear_toplevel_order ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _gdk_quartz_events_send_map_event (window);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Fix for menu height scaling on standard DPI monitors in mixed DPI environments */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (window->window_type == GDK_WINDOW_TEMP && impl->toplevel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GdkDisplay *display = gdk_window_get_display(window);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GdkMonitor *monitor = gdk_display_get_monitor_at_window(display, window);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gint scale_factor = gdk_monitor_get_scale_factor(monitor);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Only fix on low-DPI monitors */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (scale_factor == 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!g_object_get_data (G_OBJECT (window), "quartz-menu-height-fixed"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ NSWindow *nswindow = impl->toplevel;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ NSRect frame = [nswindow frame];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ NSView *contentView = [nswindow contentView];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Apply a modest adjustment to compensate for the 1/4 height issue */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Using a tiny multiplier is enough since macOS corrects itself after first display */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ frame.size.height *= 1.01;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Resize the window with animation disabled */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [nswindow setFrame:frame display:YES animate:NO];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Force layout update */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [contentView setNeedsDisplay:YES];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Mark as fixed */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ g_object_set_data (G_OBJECT (window), "quartz-menu-height-fixed",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GINT_TO_POINTER (TRUE));
</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;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [impl->view setHidden:NO];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span></pre><pre style='margin:0'>
</pre>