<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/f3d5e006514a91f2d31d310c6a6af51b4fe1a2e1">https://github.com/macports/macports-ports/commit/f3d5e006514a91f2d31d310c6a6af51b4fe1a2e1</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 f3d5e00 gtk3 3.22.30: quartz - fixed HiDPI font rendering
</span>f3d5e00 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit f3d5e006514a91f2d31d310c6a6af51b4fe1a2e1
</span>Author: Friedrich Beckmann <friedrich.beckmann@gmx.de>
AuthorDate: Sun Nov 11 17:08:14 2018 +0100
<span style='display:block; white-space:pre;color:#404040;'> gtk3 3.22.30: quartz - fixed HiDPI font rendering
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Add a patch for the gtk3 3.22.30 release comprised of two
</span><span style='display:block; white-space:pre;color:#404040;'> upstream releases:
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> https://github.com/GNOME/gtk/commit/828f634 and
</span><span style='display:block; white-space:pre;color:#404040;'> https://github.com/GNOME/gtk/commit/bb376222c104aef0ec7e31b40959bc35eecf2253
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> to solve the font rendering
</span><span style='display:block; white-space:pre;color:#404040;'> problem for the quartz backend of gtk on HiDPI screens
</span><span style='display:block; white-space:pre;color:#404040;'> like the MacBookPro Retina. The 828f634 patch is already
</span><span style='display:block; white-space:pre;color:#404040;'> in 3.24.1 and the bb3762 patch will be in 3.24.2. See
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> https://bugzilla.gnome.org/show_bug.cgi?id=787867
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> for a detailed discussion.
</span>---
gnome/gtk3/Portfile | 2 +
.../patch-quartz-hardcode-screen-resolution.patch | 61 ++++++++++++++++++++++
2 files changed, 63 insertions(+)
<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 0faa2c6..cc6fa2f 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;'>@@ -10,6 +10,7 @@ name gtk3
</span> set real_name gtk+
epoch 1
version 3.22.30
<span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 1
</span> set branch [join [lrange [split ${version} .] 0 1] .]
categories gnome x11
license LGPL-2.1+
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -59,6 +60,7 @@ patchfiles O_CLOEXEC-10.6-and-earlier.patch
</span>
if {[variant_isset quartz]} {
compiler.blacklist *gcc-3.* *gcc-4.* {clang < 425}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-quartz-hardcode-screen-resolution.patch
</span> } else {
compiler.blacklist *gcc-3.* *gcc-4.* {clang < 300}
}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gtk3/files/patch-quartz-hardcode-screen-resolution.patch b/gnome/gtk3/files/patch-quartz-hardcode-screen-resolution.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..eb4ee37
</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-quartz-hardcode-screen-resolution.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,61 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This patch comprises two upstream patches
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/GNOME/gtk/commit/828f634 and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/GNOME/gtk/commit/bb376222c104aef0ec7e31b40959bc35eecf2253
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+for the gtk3 3.22.30 release to solve the font rendering
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+problem for the quartz backend of gtk on HiDPI screens
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+like the MacBookPro Retina. The 828f634 patch is already
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+in 3.24.1 and the bb3762 patch will be in 3.24.2. See
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://bugzilla.gnome.org/show_bug.cgi?id=787867
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+for a detailed discussion.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gdk/quartz/gdkscreen-quartz.c | 18 +++++++++++-------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 11 insertions(+), 7 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/gdk/quartz/gdkscreen-quartz.c b/gdk/quartz/gdkscreen-quartz.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 586f7af02a6..219338832ee 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gdk/quartz/gdkscreen-quartz.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gdk/quartz/gdkscreen-quartz.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -67,7 +67,7 @@ static void gdk_quartz_screen_calculate_layout (GdkQuartzScreen *screen);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void display_reconfiguration_callback (CGDirectDisplayID display,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CGDisplayChangeSummaryFlags flags,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void *userInfo);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const double dpi = 72.0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static gint get_mm_from_pixels (NSScreen *screen, int pixels);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ G_DEFINE_TYPE (GdkQuartzScreen, gdk_quartz_screen, GDK_TYPE_SCREEN);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -76,10 +76,17 @@ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gdk_quartz_screen_init (GdkQuartzScreen *quartz_screen)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GdkScreen *screen = GDK_SCREEN (quartz_screen);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- NSDictionary *dd = [[[NSScreen screens] objectAtIndex:0] deviceDescription];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- NSSize size = [[dd valueForKey:NSDeviceResolution] sizeValue];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Screen resolution is used exclusively to pass to Pango for font
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * scaling. There's a long discussion in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * https://bugzilla.gnome.org/show_bug.cgi?id=787867 exploring how
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * screen resolution and pangocairo-coretext interact. The summary
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * is that MacOS takes care of scaling fonts for Retina screens and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * that while the Apple Documentation goes on about "points" they're
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * CSS points (96/in), not typeography points (72/in) and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * pangocairo-coretext needs to default to that scaling factor.
</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;'>+- _gdk_screen_set_resolution (screen, size.width);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _gdk_screen_set_resolution (screen, dpi);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gdk_quartz_screen_calculate_layout (quartz_screen);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -335,9 +342,6 @@ static gint
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ get_mm_from_pixels (NSScreen *screen, int pixels)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const float mm_per_inch = 25.4;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- NSDictionary *dd = [[[NSScreen screens] objectAtIndex:0] deviceDescription];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- NSSize size = [[dd valueForKey:NSDeviceResolution] sizeValue];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- float dpi = size.width;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return (pixels / dpi) * mm_per_inch;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>
</pre>