[gtk/gtk-3-24] [quartz]Use the absolute value of Scale values for CGContextScaleSCM



commit 36315cbe2b3c9d1c1b7508d9494a251eddbc4452
Author: John Ralls <jralls ceridwen us>
Date:   Thu Oct 14 12:41:05 2021 -0700

    [quartz]Use the absolute value of Scale values for CGContextScaleSCM
    
    In macOS-12.sdk CGContextConverSizeToDeviceSpace returns a negative
    height and passing that to CGContextScaleCTM in turn causes the cairo
    surface to draw outside the window where it can't be seen. Passing the
    absolute values of the scale factors fixes the display on macOS 12 without
    affecting earlier macOS versions.

 gdk/quartz/gdkwindow-quartz.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
---
diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c
index 1a3389bb32..a5c5c31945 100644
--- a/gdk/quartz/gdkwindow-quartz.c
+++ b/gdk/quartz/gdkwindow-quartz.c
@@ -183,8 +183,7 @@ gdk_window_impl_quartz_get_context (GdkWindowImplQuartz *window_impl,
    * in gdk_quartz_ref_cairo_surface () */
   scale = CGContextConvertSizeToDeviceSpace (cg_context,
                                              CGSizeMake (1.0, 1.0));
-  CGContextScaleCTM (cg_context, 1.0 / scale.width, 1.0 / scale.height);
-
+  CGContextScaleCTM (cg_context, 1.0 / fabs(scale.width), 1.0 / fabs(scale.height));
   return cg_context;
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]