- if (!insetCache.has(inset)) {
- LYXERR(Debug::DEBUG, "inset has no cached position");
- return 0;
- }
-
- Dimension const & dim = insetCache.dim(inset);
- Point p = insetCache.xy(inset);
-
- LYXERR(Debug::DEBUG, "xo: " << p.x_ << "..." << p.x_ + dim.wid
- << " yo: " << p.y_ - dim.asc << "..." << p.y_ + dim.des);
-
- if (x >= p.x_ && x <= p.x_ + dim.wid
- && y >= p.y_ - dim.asc && y <= p.y_ + dim.des) {
- LYXERR(Debug::DEBUG, "Hit inset: " << inset);
- return const_cast<InsetList::InsetTable *>(&(*iit));
+ if (insetCache.covers(it.inset, x, y)) {
+ LYXERR(Debug::DEBUG, "Hit inset: " << it.inset);
+ return const_cast<InsetList::InsetTable *>(&it);