Skip to content

Commit 05c8941

Browse files
committed
gtk3-devel: add upstream patch
1 parent 6ebc583 commit 05c8941

File tree

2 files changed

+56
-5
lines changed

2 files changed

+56
-5
lines changed

gnome/gtk3-devel/Portfile

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,9 @@ name gtk3-devel
1313
conflicts gtk3
1414
set my_name gtk3
1515
version 3.24.49
16-
revision 0
16+
revision 1
1717
epoch 0
1818

19-
set proj_name gtk
20-
set branch [join [lrange [split ${version} .] 0 1] .]
2119
categories gnome x11
2220
license LGPL-2.1+
2321
maintainers {mascguy @mascguy} openmaintainer
@@ -29,6 +27,8 @@ long_description GTK+ is a highly usable, feature-rich toolkit for creating g
2927
programming languages, such as C++, Python and C#, among others.
3028
homepage http://www.gtk.org/
3129

30+
set proj_name gtk
31+
set branch [join [lrange [split ${version} .] 0 1] .]
3232
distname ${proj_name}-${version}
3333
dist_subdir ${my_name}
3434
use_xz yes
@@ -60,8 +60,8 @@ depends_lib-append \
6060
path:lib/pkgconfig/pango.pc:pango
6161

6262
depends_run-append \
63-
port:shared-mime-info \
64-
port:hicolor-icon-theme
63+
port:hicolor-icon-theme \
64+
port:shared-mime-info
6565

6666
compiler.cxx_standard 2011
6767

@@ -91,6 +91,10 @@ patchfiles-append patch-sincos.diff
9191
# *NOT* merged merge request: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8136
9292
patchfiles-append patch-gtk-menu-crash.diff
9393

94+
# Upstream patch
95+
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8342
96+
patchfiles-append patch-gtk-menu-scale.diff
97+
9498
# gtk3 +quartz uses instancetype which is not available
9599
# before approximately Xcode 4.6 (#49391)
96100
# if building +x11 blacklist comilers that do not support C11
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
diff --git gdk/quartz/gdkwindow-quartz.c gdk/quartz/gdkwindow-quartz.c
2+
index 5d6d522846..df2a8d051e 100644
3+
--- gdk/quartz/gdkwindow-quartz.c
4+
+++ gdk/quartz/gdkwindow-quartz.c
5+
@@ -1185,8 +1185,41 @@ gdk_window_quartz_show (GdkWindow *window, gboolean already_mapped)
6+
clear_toplevel_order ();
7+
8+
_gdk_quartz_events_send_map_event (window);
9+
+
10+
+ /* Fix for menu height scaling on standard DPI monitors in mixed DPI environments */
11+
+ if (window->window_type == GDK_WINDOW_TEMP && impl->toplevel)
12+
+ {
13+
+ GdkDisplay *display = gdk_window_get_display(window);
14+
+ GdkMonitor *monitor = gdk_display_get_monitor_at_window(display, window);
15+
+ gint scale_factor = gdk_monitor_get_scale_factor(monitor);
16+
+
17+
+ /* Only fix on low-DPI monitors */
18+
+ if (scale_factor == 1)
19+
+ {
20+
+ if (!g_object_get_data (G_OBJECT (window), "quartz-menu-height-fixed"))
21+
+ {
22+
+ NSWindow *nswindow = impl->toplevel;
23+
+ NSRect frame = [nswindow frame];
24+
+ NSView *contentView = [nswindow contentView];
25+
+
26+
+ /* Apply a modest adjustment to compensate for the 1/4 height issue */
27+
+ /* Using a tiny multiplier is enough since macOS corrects itself after first display */
28+
+ frame.size.height *= 1.01;
29+
+
30+
+ /* Resize the window with animation disabled */
31+
+ [nswindow setFrame:frame display:YES animate:NO];
32+
+
33+
+ /* Force layout update */
34+
+ [contentView setNeedsDisplay:YES];
35+
+
36+
+ /* Mark as fixed */
37+
+ g_object_set_data (G_OBJECT (window), "quartz-menu-height-fixed",
38+
+ GINT_TO_POINTER (TRUE));
39+
+ }
40+
+ }
41+
+ }
42+
}
43+
- else
44+
+ else
45+
{
46+
[impl->view setHidden:NO];
47+
}

0 commit comments

Comments
 (0)