Code

adapt code to new Maybe/bbox regime
[inkscape.git] / src / sp-conn-end.cpp
index 7c0d9650615c7cae9045bcb76c0f0cad29952bd6..7a8a60dd088dde3f5fdb94c16f48b1b3db13905b 100644 (file)
@@ -64,15 +64,19 @@ sp_conn_end_move_compensate(NR::Matrix const *mp, SPItem *moved_item,
         /* Initial end-points: centre of attached object. */
         NR::Point h2endPt_icoordsys[2];
         NR::Matrix h2i2anc[2];
-        NR::Rect h2bbox_icoordsys[2] = {
-            h2attItem[0]->getBounds(NR::identity()),
-            h2attItem[1]->getBounds(NR::identity())
-        };
+        NR::Rect h2bbox_icoordsys[2];
         NR::Point last_seg_endPt[2] = {
             sp_curve_second_point(path->curve),
             sp_curve_penultimate_point(path->curve)
         };
         for (unsigned h = 0; h < 2; ++h) {
+            NR::Maybe<NR::Rect> bbox = h2attItem[h]->getBounds(NR::identity());
+            if (bbox) {
+                h2bbox_icoordsys[h] = *bbox;
+            } else {
+                // FIXME
+                h2bbox_icoordsys[h] = NR::Rect(NR::Point(0, 0), NR::Point(0, 0));
+            }
             h2i2anc[h] = i2anc_affine(h2attItem[h], ancestor);
             h2endPt_icoordsys[h] = h2bbox_icoordsys[h].midpoint();
         }
@@ -107,7 +111,13 @@ sp_conn_end_move_compensate(NR::Matrix const *mp, SPItem *moved_item,
 
         NR::Rect otherpt_rect = NR::Rect(other_endpt, other_endpt);
         NR::Rect h2bbox_icoordsys[2] = { otherpt_rect, otherpt_rect };
-        h2bbox_icoordsys[ind] = h2attItem[ind]->getBounds(NR::identity());
+        NR::Maybe<NR::Rect> bbox = h2attItem[ind]->getBounds(NR::identity());
+        if (bbox) {
+            h2bbox_icoordsys[ind] = *bbox;
+        } else {
+            // FIXME
+            h2bbox_icoordsys[ind] = NR::Rect(NR::Point(0, 0), NR::Point(0, 0));
+        }
 
         h2i2anc = i2anc_affine(h2attItem[ind], ancestor);
         h2endPt_icoordsys[ind] = h2bbox_icoordsys[ind].midpoint();