summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ghostregion.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/ghostregion.cc')
-rw-r--r--gtk2_ardour/ghostregion.cc20
1 files changed, 12 insertions, 8 deletions
diff --git a/gtk2_ardour/ghostregion.cc b/gtk2_ardour/ghostregion.cc
index 1da70631f7..d9b267cfd7 100644
--- a/gtk2_ardour/ghostregion.cc
+++ b/gtk2_ardour/ghostregion.cc
@@ -305,14 +305,18 @@ MidiGhostRegion::update_contents_height ()
uint8_t const note_num = (*it).second->event->note()->note();
double const y = note_y(trackview, mv, note_num);
-
- if ((_tmp_rect = dynamic_cast<ArdourCanvas::Rectangle*>((*it).second->item))) {
- _tmp_rect->set (ArdourCanvas::Rect (_tmp_rect->x0(), y, _tmp_rect->x1(), y + h));
- } else if ((_tmp_poly = dynamic_cast<ArdourCanvas::Polygon*>((*it).second->item))) {
- Duple position = _tmp_poly->position();
- position.y = y;
- _tmp_poly->set_position(position);
- _tmp_poly->set(Hit::points(h));
+ if (note_num < mv->lowest_note() || note_num > mv->highest_note()) {
+ (*it).second->item->hide();
+ } else {
+ if ((_tmp_rect = dynamic_cast<ArdourCanvas::Rectangle*>((*it).second->item))) {
+ _tmp_rect->set (ArdourCanvas::Rect (_tmp_rect->x0(), y, _tmp_rect->x1(), y + h));
+ } else if ((_tmp_poly = dynamic_cast<ArdourCanvas::Polygon*>((*it).second->item))) {
+ Duple position = _tmp_poly->position();
+ position.y = y;
+ _tmp_poly->set_position(position);
+ _tmp_poly->set(Hit::points(h));
+ }
+ (*it).second->item->show();
}
}
}