Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/bockbuild.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Köplinger <alex.koeplinger@outlook.com>2018-05-16 03:12:31 +0300
committerGitHub <noreply@github.com>2018-05-16 03:12:31 +0300
commit1d4d9fbe7a6aaf58045d25d23aaa28f8106b0561 (patch)
tree22aba4c2fa43c38e6293085332ac69fa492c56a4
parent463bf5f401e9db5f210a55b1a2533824002e8c4b (diff)
parent4b112a54956e5f66317bce86283606f42bf7caf4 (diff)
Merge pull request #63 from mono/backing-scale-factor
[GTK] Fix userSpaceScaleFactor deprecation warnings.
-rw-r--r--packages/gtk+.py4
-rw-r--r--packages/patches/gtk/gtk-backing-scale-factor.patch47
2 files changed, 50 insertions, 1 deletions
diff --git a/packages/gtk+.py b/packages/gtk+.py
index 505813a..88a138f 100644
--- a/packages/gtk+.py
+++ b/packages/gtk+.py
@@ -206,7 +206,9 @@ class GtkPackage (GitHubPackage):
# 'patches/gtk/get-ascii-capable-keyboard-input-source.patch',
# https://developercommunity.visualstudio.com/content/problem/104471/visual-studio-for-mac-720540-cannot-launch-exc-bre.html
- 'patches/gtk/update_only_apple_keyboard_layout.patch'
+ 'patches/gtk/update_only_apple_keyboard_layout.patch',
+
+ 'patches/gtk/gtk-backing-scale-factor.patch'
])
def prep(self):
diff --git a/packages/patches/gtk/gtk-backing-scale-factor.patch b/packages/patches/gtk/gtk-backing-scale-factor.patch
new file mode 100644
index 0000000..fa01598
--- /dev/null
+++ b/packages/patches/gtk/gtk-backing-scale-factor.patch
@@ -0,0 +1,47 @@
+diff --git a/gdk/quartz/gdkscreen-quartz.c b/gdk/quartz/gdkscreen-quartz.c
+index e6f0c44e7..3daad2d6e 100644
+--- a/gdk/quartz/gdkscreen-quartz.c
++++ b/gdk/quartz/gdkscreen-quartz.c
+@@ -83,13 +83,16 @@ _gdk_screen_quartz_init (GdkScreenQuartz *screen_quartz)
+ {
+ GdkScreen *screen = GDK_SCREEN (screen_quartz);
+ NSScreen *nsscreen;
++ NSDictionary *dd;
++ NSSize size;
+
+ gdk_screen_set_default_colormap (screen,
+ gdk_screen_get_system_colormap (screen));
+
+ nsscreen = [[NSScreen screens] objectAtIndex:0];
+- gdk_screen_set_resolution (screen,
+- 72.0 * [nsscreen userSpaceScaleFactor]);
++ dd = [nsscreen deviceDescription];
++ size = [[dd valueForKey:NSDeviceResolution] sizeValue];
++ gdk_screen_set_resolution (screen, size.width / [nsscreen backingScaleFactor]);
+
+ gdk_screen_quartz_calculate_layout (screen_quartz);
+
+@@ -357,17 +360,12 @@ gdk_screen_get_height (GdkScreen *screen)
+ static gint
+ get_mm_from_pixels (NSScreen *screen, int pixels)
+ {
+- /* userSpaceScaleFactor is in "pixels per point",
+- * 72 is the number of points per inch,
+- * and 25.4 is the number of millimeters per inch.
+- */
+-#if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_3
+- float dpi = [screen userSpaceScaleFactor] * 72.0;
+-#else
+- float dpi = 96.0 / 72.0;
+-#endif
+-
+- return (pixels / dpi) * 25.4;
++ const float mm_per_inch = 25.4;
++ NSScreen *nsscreen = [[NSScreen screens] objectAtIndex:0];
++ NSDictionary *dd = [nsscreen deviceDescription];
++ NSSize size = [[dd valueForKey:NSDeviceResolution] sizeValue];
++ float dpi = size.width / [nsscreen backingScaleFactor];
++ return (pixels / dpi) * mm_per_inch;
+ }
+
+ static NSScreen *