summaryrefslogtreecommitdiffstats
path: root/src/object-snapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/object-snapper.cpp')
-rw-r--r--src/object-snapper.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/object-snapper.cpp b/src/object-snapper.cpp
index 57937145a..785f80960 100644
--- a/src/object-snapper.cpp
+++ b/src/object-snapper.cpp
@@ -62,17 +62,18 @@ void Inkscape::ObjectSnapper::_findCandidates(std::list<SPItem*>& c,
_findCandidates(c, o, it, p, snap_dim);
} else {
NR::Maybe<NR::Rect> b = sp_item_bbox_desktop(SP_ITEM(o));
- NR::Point b_min = b->min();
- NR::Point b_max = b->max();
- double d = getDistance();
- bool withinX = (p[NR::X] >= b_min[NR::X] - d) && (p[NR::X] <= b_max[NR::X] + d);
- bool withinY = (p[NR::Y] >= b_min[NR::Y] - d) && (p[NR::Y] <= b_max[NR::Y] + d);
- if (snap_dim == SNAP_X && withinX || snap_dim == SNAP_Y && withinY || snap_dim == SNAP_XY && withinX && withinY) {
- c.push_back(SP_ITEM(o));
+ if (b) {
+ NR::Point b_min = b->min();
+ NR::Point b_max = b->max();
+ double d = getDistance();
+ bool withinX = (p[NR::X] >= b_min[NR::X] - d) && (p[NR::X] <= b_max[NR::X] + d);
+ bool withinY = (p[NR::Y] >= b_min[NR::Y] - d) && (p[NR::Y] <= b_max[NR::Y] + d);
+ if (snap_dim == SNAP_X && withinX || snap_dim == SNAP_Y && withinY || snap_dim == SNAP_XY && withinX && withinY) {
+ c.push_back(SP_ITEM(o));
+ }
}
}
- }
-
+ }
}
}
}