Sophie

Sophie

distrib > Mageia > 3 > i586 > media > core-release-src > by-pkgid > dc9c6c7dba0aa328e414eb71d55e4fbb > files > 3

plplot-5.9.10-0.svn12284.4.mga3.src.rpm

--- a/drivers/cairo.c	2013-01-03 23:33:21.000000000 +0800
+++ b/drivers/cairo.c	2013-01-05 18:57:34.509785410 +0800
@@ -650,7 +650,7 @@
     aStream->level             = 0;
     aStream->pangoMarkupString = (char *) malloc( sizeof ( char ) * MAX_MARKUP_LEN );
     // Calculate the font size (in points since DPI = 72).
-    aStream->fontSize = (float) ( pls->chrht * DPI / 25.4 );
+    aStream->fontSize = (float) ( pls->chrht * pls->ydpi / 25.4 );
     for ( i = 0; i < MAX_MARKUP_LEN; i++ )
     {
         aStream->pangoMarkupString[i] = 0;
@@ -778,7 +778,7 @@
     // If asked, set the string length (in mm) and return
     if ( pls->get_string_length )
     {
-        pls->string_length = (PLFLT) textXExtent * 25.4 / DPI;
+        pls->string_length = (PLFLT) textXExtent * 25.4 / pls->xdpi;
     }
     else
     {
@@ -881,7 +881,7 @@
     }
 
     // Calculate the font size (in points since DPI = 72).
-    fontSize = (float) ( pls->chrht * DPI / 25.4 );
+    fontSize = (float) ( pls->chrht * pls->ydpi / 25.4 );
 
     // Convert the escape characters into the appropriate Pango markup
     textWithPangoMarkup = ucs4_to_pango_markup_format( args->unicode_array, args->unicode_array_len, fontSize );
@@ -895,7 +895,7 @@
     // If asked, set the string length (in mm) and return
     if ( pls->get_string_length )
     {
-        pls->string_length = (PLFLT) textXExtent * 25.4 / DPI;
+        pls->string_length = (PLFLT) textXExtent * 25.4 / pls->xdpi;
         return;
     }
 
@@ -1274,6 +1274,11 @@
     pls->has_string_length = 1;           // Driver supports string length calculations
     pls->dev_modeset       = 1;           // Driver supports drawing mode setting
 
+    if ( pls->xdpi <= 0 || pls->ydpi <= 0) 
+      {
+	pls->xdpi = DPI;
+	pls->ydpi = DPI;
+      }
     if ( pls->xlength <= 0 || pls->ylength <= 0 )
     {
         pls->xlength = PLCAIRO_DEFAULT_X;
@@ -1286,7 +1291,8 @@
     else
         downscale = (double) pls->ylength / (double) PIXELS_Y;
     plP_setphy( (PLINT) 0, (PLINT) ( pls->xlength / downscale ), (PLINT) 0, (PLINT) ( pls->ylength / downscale ) );
-    plP_setpxl( DPI / 25.4 / downscale, DPI / 25.4 / downscale );
+    plP_setpxl(  pls->xdpi / 25.4 / downscale, 
+		 pls->ydpi / 25.4 / downscale );
 
     // Initialize font table with either enviroment variables or defaults.
     // This was copied from the psttf driver.