diff options
author | Alexander Köplinger <alex.koeplinger@outlook.com> | 2018-05-16 03:12:31 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-16 03:12:31 +0300 |
commit | 1d4d9fbe7a6aaf58045d25d23aaa28f8106b0561 (patch) | |
tree | 22aba4c2fa43c38e6293085332ac69fa492c56a4 | |
parent | 463bf5f401e9db5f210a55b1a2533824002e8c4b (diff) | |
parent | 4b112a54956e5f66317bce86283606f42bf7caf4 (diff) |
Merge pull request #63 from mono/backing-scale-factor
[GTK] Fix userSpaceScaleFactor deprecation warnings.
-rw-r--r-- | packages/gtk+.py | 4 | ||||
-rw-r--r-- | packages/patches/gtk/gtk-backing-scale-factor.patch | 47 |
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 * |