From: John Ralls Date: Mon, 10 Apr 2017 23:38:26 +0000 (-0700) Subject: Save Changes Bug 781118 - gtk 3.22.12 quartz backend segfault X-Git-Tag: archive/raspbian/3.24.39-1+rpi1~1^2~65^2~39^2~628 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=9b5a92f5cc968193ae938c51df72c7beeca121d8;p=gtk%2B3.0.git Save Changes Bug 781118 - gtk 3.22.12 quartz backend segfault Calling 'width' on an NSValue won't work, must call sizeValue on it. --- diff --git a/gdk/quartz/gdkscreen-quartz.c b/gdk/quartz/gdkscreen-quartz.c index e9bf684bfc..586f7af02a 100644 --- a/gdk/quartz/gdkscreen-quartz.c +++ b/gdk/quartz/gdkscreen-quartz.c @@ -76,11 +76,10 @@ static void gdk_quartz_screen_init (GdkQuartzScreen *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, - [[nsscreen deviceDescription][NSDeviceResolution] width]); + _gdk_screen_set_resolution (screen, size.width); gdk_quartz_screen_calculate_layout (quartz_screen); @@ -336,7 +335,9 @@ static gint get_mm_from_pixels (NSScreen *screen, int pixels) { 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; }