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 *