diff options
Diffstat (limited to 'src/sp-item-transform.cpp')
| -rw-r--r-- | src/sp-item-transform.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/sp-item-transform.cpp b/src/sp-item-transform.cpp index d62211245..105a91b4c 100644 --- a/src/sp-item-transform.cpp +++ b/src/sp-item-transform.cpp @@ -46,11 +46,12 @@ sp_item_rotate_rel(SPItem *item, NR::rotate const &rotation) void sp_item_scale_rel (SPItem *item, NR::scale const &scale) { - NR::translate const s(sp_item_bbox_desktop(item).midpoint()); // use getCenter? - - sp_item_set_i2d_affine(item, - sp_item_i2d_affine(item) * inverse(s) * scale * s); - sp_item_write_transform(item, SP_OBJECT_REPR(item), item->transform); + NR::Maybe<NR::Rect> bbox = sp_item_bbox_desktop(item); + if (bbox) { + NR::translate const s(bbox->midpoint()); // use getCenter? + sp_item_set_i2d_affine(item, sp_item_i2d_affine(item) * inverse(s) * scale * s); + sp_item_write_transform(item, SP_OBJECT_REPR(item), item->transform); + } } void |
