diff options
Diffstat (limited to 'libs/canvas/lookup_table.cc')
-rw-r--r-- | libs/canvas/lookup_table.cc | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/libs/canvas/lookup_table.cc b/libs/canvas/lookup_table.cc index 9b47dcf0d7..38b8be4afb 100644 --- a/libs/canvas/lookup_table.cc +++ b/libs/canvas/lookup_table.cc @@ -52,16 +52,21 @@ DumbLookupTable::get (Rect const &) vector<Item *> DumbLookupTable::items_at_point (Duple point) const { - /* Point is in parent coordinate system */ + /* Point is in canvas coordinate system */ - list<Item *> items = _group.items (); + list<Item *> const & items (_group.items ()); vector<Item *> vitems; for (list<Item *>::const_iterator i = items.begin(); i != items.end(); ++i) { + + if (!(*i)->visible()) { + continue; + } + boost::optional<Rect> item_bbox = (*i)->bounding_box (); + if (item_bbox) { - Rect canvas_bbox = (*i)->item_to_parent (item_bbox.get ()); - if (canvas_bbox.contains (point)) { + if ((*i)->item_to_canvas (item_bbox.get ()).contains (point)) { vitems.push_back (*i); } } |