Replace NSScreen:userSpaceScaleFactor, deprecated since MacOS X 10.7.
userSpaceScaleFactor is not compatible with high-resolution (aka HiDPI) displays.
This commit is contained in:
@ -80,7 +80,7 @@ gdk_quartz_screen_init (GdkQuartzScreen *quartz_screen)
|
|||||||
|
|
||||||
nsscreen = [[NSScreen screens] objectAtIndex:0];
|
nsscreen = [[NSScreen screens] objectAtIndex:0];
|
||||||
_gdk_screen_set_resolution (screen,
|
_gdk_screen_set_resolution (screen,
|
||||||
72.0 * [nsscreen userSpaceScaleFactor]);
|
[[nsscreen deviceDescription][NSDeviceResolution] width]);
|
||||||
|
|
||||||
gdk_quartz_screen_calculate_layout (quartz_screen);
|
gdk_quartz_screen_calculate_layout (quartz_screen);
|
||||||
|
|
||||||
@ -110,8 +110,6 @@ gdk_quartz_screen_dispose (GObject *object)
|
|||||||
static void
|
static void
|
||||||
gdk_quartz_screen_finalize (GObject *object)
|
gdk_quartz_screen_finalize (GObject *object)
|
||||||
{
|
{
|
||||||
GdkQuartzScreen *screen = GDK_QUARTZ_SCREEN (object);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (gdk_quartz_screen_parent_class)->finalize (object);
|
G_OBJECT_CLASS (gdk_quartz_screen_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -337,17 +335,9 @@ gdk_quartz_screen_get_height (GdkScreen *screen)
|
|||||||
static gint
|
static gint
|
||||||
get_mm_from_pixels (NSScreen *screen, int pixels)
|
get_mm_from_pixels (NSScreen *screen, int pixels)
|
||||||
{
|
{
|
||||||
/* userSpaceScaleFactor is in "pixels per point",
|
const float mm_per_inch = 25.4;
|
||||||
* 72 is the number of points per inch,
|
float dpi = [[screen deviceDescription][NSDeviceResolution] width];
|
||||||
* and 25.4 is the number of millimeters per inch.
|
return (pixels / dpi) * mm_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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static gchar *
|
static gchar *
|
||||||
|
|||||||
Reference in New Issue
Block a user