From: Alan Third Date: Sun, 15 Nov 2020 17:21:03 +0000 (+0000) Subject: Fix SVG display again (bug#44655) X-Git-Tag: emacs-28.0.90~5115 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ca8e37eaf64f23675fab36eadead4d3b613b8a1b;p=emacs.git Fix SVG display again (bug#44655) * src/image.c (svg_load_image): Fall back to rsvg_handle_get_dimensions if we can't calculate the size of the image. --- diff --git a/src/image.c b/src/image.c index 3858f3c41f3..fdb7ef874d7 100644 --- a/src/image.c +++ b/src/image.c @@ -9903,30 +9903,21 @@ svg_load_image (struct frame *f, struct image *img, char *contents, viewbox_width = viewbox.x + viewbox.width; viewbox_height = viewbox.y + viewbox.height; } -#else - /* The function used above to get the geometry of the visible area - of the SVG are only available in librsvg 2.46 and above, so in - certain circumstances this code path can result in some parts of - the SVG being cropped. */ - RsvgDimensionData dimension_data; - - rsvg_handle_get_dimensions (rsvg_handle, &dimension_data); - viewbox_width = dimension_data.width; - viewbox_height = dimension_data.height; + if (viewbox_width == 0 || viewbox_height == 0) #endif + { + /* The functions used above to get the geometry of the visible + area of the SVG are only available in librsvg 2.46 and above, + so in certain circumstances this code path can result in some + parts of the SVG being cropped. */ + RsvgDimensionData dimension_data; - if (viewbox_width == 0 || viewbox_height == 0) - { - /* We do not have any usable dimensions, so make some up. The - values below are supposedly the default values most web - browsers use for SVGs with no set size. */ - /* FIXME: At this stage we should perhaps consider rendering the - image out to a bitmap and getting the dimensions from - that. */ - viewbox_width = 300; - viewbox_height = 150; - } + rsvg_handle_get_dimensions (rsvg_handle, &dimension_data); + + viewbox_width = dimension_data.width; + viewbox_height = dimension_data.height; + } compute_image_size (viewbox_width, viewbox_height, img->spec, &width, &height);