+MidiGhostRegion::update_note (Note* note, bool hide)
+{
+ MidiStreamView* mv = midi_view();
+
+ if (!mv) {
+ return;
+ }
+
+ GhostEvent* ev = find_event (note);
+
+ if (!ev) {
+ return;
+ }
+
+ uint8_t const note_num = note->note()->note();
+
+ double const y = note_y(trackview, mv, note_num);
+ double const h = note_height(trackview, mv);
+
+ if (hide) {
+ ev->item->hide();
+ } else {
+ if ((_tmp_rect = dynamic_cast<ArdourCanvas::Rectangle*>(ev->item))) {
+ _tmp_rect->set (ArdourCanvas::Rect (note->x0(), y, note->x1(), y + h));
+ }
+ ev->item->show();
+ }
+}
+
+/** Update the x positions of our representation of a parent's hit.
+ * @param hit The CanvasHit from the parent MidiRegionView.
+ */
+void
+MidiGhostRegion::update_hit (Hit* hit, bool hide)