Commit 64122ae0 authored by Maciej Suminski's avatar Maciej Suminski
Browse files

Stroked lines in Cairo GAL are always drawn at least 1 pixel wide.

parent 9374d642
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -496,7 +496,12 @@ void CAIRO_GAL::SetLineWidth( double aLineWidth )
    storePath();

    lineWidth = aLineWidth;
    cairo_set_line_width( cairoImage, aLineWidth );

    // Make lines appear at least 1 pixel wide, no matter of zoom
    double x = 1.0, y = 1.0;
    cairo_device_to_user_distance( cairoImage, &x, &y );
    double minWidth = std::min( fabs( x ), fabs( y ) );
    cairo_set_line_width( cairoImage, std::max( aLineWidth, minWidth ) );

    if( isGrouping )
    {
@@ -716,9 +721,16 @@ void CAIRO_GAL::DrawGroup( int aGroupNumber )
            break;

        case CMD_SET_LINE_WIDTH:
            cairo_set_line_width( cairoImage, it->arguments[0] );
            {
                // Make lines appear at least 1 pixel wide, no matter of zoom
                double x = 1.0, y = 1.0;
                cairo_device_to_user_distance( cairoImage, &x, &y );
                double minWidth = std::min( fabs( x ), fabs( y ) );
                cairo_set_line_width( cairoImage, std::max( it->arguments[0], minWidth ) );
            }
            break;


        case CMD_STROKE_PATH:
            cairo_set_source_rgb( cairoImage, strokeColor.r, strokeColor.g, strokeColor.b );
            cairo_append_path( cairoImage, it->cairoPath );