From 0a78936f89257606fbf86ad64722c560cce24005 Mon Sep 17 00:00:00 2001 From: Jabiertxof Date: Wed, 11 Sep 2019 11:42:16 +0200 Subject: Fix crash when font dont have X glyph. Solve this https://gitlab.com/inkscape/inbox/issues/841 --- src/display/drawing-text.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/display/drawing-text.cpp b/src/display/drawing-text.cpp index 6ec04ca01..46d05d399 100644 --- a/src/display/drawing-text.cpp +++ b/src/display/drawing-text.cpp @@ -122,9 +122,12 @@ unsigned DrawingGlyphs::_updateItem(Geom::IntRect const &/*area*/, UpdateContext */ Geom::OptRect pb; - if(_drawable){ - pb = bounds_exact_transformed(*_font->PathVector(42), ctx.ctm); //we fix to "X" char to allow always a reasonable bbox - pb->expandBy(pb->height()/20.0); //we scale a bit the area to in between char gaps mainly + if (_drawable) { + Geom::PathVector *glyphv = _font->PathVector(42); //we fix to "X" char to allow always a reasonable bbox + if (glyphv && !glyphv->empty()) { + pb = bounds_exact_transformed(*glyphv, ctx.ctm); + pb->expandBy(pb->height()/10.0); //we scale a bit the area to in between char gaps mainly + } } if(!pb){ // Fallback, spaces mostly, this never happendd with fixed gliph Geom::Rect pbigbox(Geom::Point(0.0, _asc*scale_bigbox*0.66),Geom::Point(_width*scale_bigbox, 0.0)); -- cgit v1.2.3