diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-11-03 10:07:00 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-11-03 10:07:00 -0500 |
commit | 08b485db75082a21c3814b0a4517f2b2fc994b77 (patch) | |
tree | 9ab7d5bf9190977d58767de9e246bf24fbe628a8 /libs/canvas/lookup_table.cc | |
parent | 85daa31ab56b078c556addb3c9faee0f88697c4d (diff) |
send enter events to EVERY newly entered item (ignore the bool return from the event handler); other canvas debugging aids;switch items_at_point() to use canvas coordinates
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); } } |