ScrollGroup::covers_{window,canvas}() need to account for possible non-zero position of the group.

They also do NOT need to consider scroll offset
This commit is contained in:
Paul Davis 2015-01-24 14:08:19 -05:00
parent 7356ff6ab5
commit 05a5bcc84c

View file

@ -81,13 +81,18 @@ ScrollGroup::scroll_to (Duple const& d)
bool
ScrollGroup::covers_canvas (Duple const& d) const
{
boost::optional<Rect> r = bounding_box ();
boost::optional<Rect> r = bounding_box ();
if (!r) {
return false;
}
return r->contains (d);
/* Bounding box is in item coordinates, but we need
to consider the position of the bounding box
within the canvas.
*/
return r->translate (position()).contains (d);
}
bool
@ -99,7 +104,10 @@ ScrollGroup::covers_window (Duple const& d) const
return false;
}
Rect w = r->translate (-_scroll_offset);
return w.contains (d);
/* Bounding box is in item coordinates, but we need
to consider the position of the bounding box
within the canvas.
*/
return r->translate (position()).contains (d);
}