Code

Disable the page selector when there's only one page
[inkscape.git] / src / sp-item.cpp
index 469b95222cba39a74e921de55a31113367bae5a6..338a70c4ed4b838866151848821a4ce8b81ced9e 100644 (file)
@@ -623,6 +623,13 @@ sp_item_update(SPObject *object, SPCtx *ctx, guint flags)
         }
     }
 
+    if (item->display && item->display->arenaitem) {
+        NRRect item_bbox;
+        sp_item_invoke_bbox(item, &item_bbox, NR::identity(), TRUE, SPItem::GEOMETRIC_BBOX);
+        NR::Maybe<NR::Rect> i_bbox = item_bbox;
+        nr_arena_item_set_item_bbox(item->display->arenaitem, i_bbox);
+    }
+
     // Update libavoid with item geometry (for connector routing).
     item->avoidRef->handleSettingChange();
 }
@@ -787,8 +794,6 @@ void sp_item_snappoints(SPItem const *item, SnapPointsIter p)
     if (item_class.snappoints) {
         item_class.snappoints(item, p);
     }
-    
-    *p = item->getCenter();
 }
 
 void
@@ -919,6 +924,10 @@ sp_item_invoke_show(SPItem *item, NRArena *arena, unsigned key, unsigned flags)
             SP_OBJECT(mask)->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
         }
         NR_ARENA_ITEM_SET_DATA(ai, item);
+        NRRect item_bbox;
+        sp_item_invoke_bbox(item, &item_bbox, NR::identity(), TRUE, SPItem::GEOMETRIC_BBOX);
+        NR::Maybe<NR::Rect> i_bbox = item_bbox;
+        nr_arena_item_set_item_bbox(ai, i_bbox);
     }
 
     return ai;