diff --git a/src/object-edit.cpp b/src/object-edit.cpp
index 2ebb2a0651bb797bb95bfffb7b9b34d11e885753..bb98c6b681715fe890f70e409a5512eaab2ea74f 100644 (file)
--- a/src/object-edit.cpp
+++ b/src/object-edit.cpp
@@ -652,7 +652,11 @@ static void sp_3dbox_knot_set(SPItem *item, guint knot_id, NR::Point const &new_
static void sp_3dbox_knot_center_set(SPItem *item, NR::Point const &new_pos, NR::Point const &origin, guint state)
{
NR::Matrix const i2d (sp_item_i2d_affine (item));
- sp_3dbox_recompute_XY_corners_from_new_center (SP_3DBOX (item), new_pos * i2d);
+ if (state & GDK_SHIFT_MASK) {
+ sp_3dbox_recompute_Z_corners_from_new_center (SP_3DBOX (item), new_pos * i2d);
+ } else {
+ sp_3dbox_recompute_XY_corners_from_new_center (SP_3DBOX (item), new_pos * i2d);
+ }
sp_3dbox_update_curves (SP_3DBOX(item));
}