Save Changes Bug 781118 - gtk 3.22.12 quartz backend segfault

Calling 'width' on an NSValue won't work, must call sizeValue on it.
This commit is contained in:
John Ralls
2017-04-10 16:38:26 -07:00
parent dfb5d11a53
commit 9b5a92f5cc

View File

@ -76,11 +76,10 @@ static void
gdk_quartz_screen_init (GdkQuartzScreen *quartz_screen) gdk_quartz_screen_init (GdkQuartzScreen *quartz_screen)
{ {
GdkScreen *screen = GDK_SCREEN (quartz_screen); GdkScreen *screen = GDK_SCREEN (quartz_screen);
NSScreen *nsscreen; NSDictionary *dd = [[[NSScreen screens] objectAtIndex:0] deviceDescription];
NSSize size = [[dd valueForKey:NSDeviceResolution] sizeValue];
nsscreen = [[NSScreen screens] objectAtIndex:0]; _gdk_screen_set_resolution (screen, size.width);
_gdk_screen_set_resolution (screen,
[[nsscreen deviceDescription][NSDeviceResolution] width]);
gdk_quartz_screen_calculate_layout (quartz_screen); gdk_quartz_screen_calculate_layout (quartz_screen);
@ -336,7 +335,9 @@ static gint
get_mm_from_pixels (NSScreen *screen, int pixels) get_mm_from_pixels (NSScreen *screen, int pixels)
{ {
const float mm_per_inch = 25.4; const float mm_per_inch = 25.4;
float dpi = [[screen deviceDescription][NSDeviceResolution] width]; NSDictionary *dd = [[[NSScreen screens] objectAtIndex:0] deviceDescription];
NSSize size = [[dd valueForKey:NSDeviceResolution] sizeValue];
float dpi = size.width;
return (pixels / dpi) * mm_per_inch; return (pixels / dpi) * mm_per_inch;
} }