ee1763fb41
Former-commit-id: e5f8f1d50c120c9125a03f9dccb1701969e9a257
48 lines
1.7 KiB
Diff
48 lines
1.7 KiB
Diff
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 *
|