void
Item::set_position (Duple p)
{
+ if (p == _position) {
+ return;
+ }
+
boost::optional<ArdourCanvas::Rect> bbox = bounding_box ();
boost::optional<ArdourCanvas::Rect> pre_change_parent_bounding_box;
void
Item::hide ()
{
- _visible = false;
- _canvas->item_shown_or_hidden (this);
+ if (_visible) {
+ _visible = false;
+ _canvas->item_shown_or_hidden (this);
+ }
}
void
Item::show ()
{
- _visible = true;
- _canvas->item_shown_or_hidden (this);
+ if (!_visible) {
+ _visible = true;
+ _canvas->item_shown_or_hidden (this);
+ }
}
Duple
{
if (_bounding_box_dirty) {
compute_bounding_box ();
+ assert (!_bounding_box_dirty);
}
- assert (!_bounding_box_dirty);
return _bounding_box;
}