summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/display/drawing-text.cpp9
1 files changed, 6 insertions, 3 deletions
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));