X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fghostregion.cc;h=2f9133803c97b1b19fb1f62aaedf3528af993d3e;hb=b3c78e906c33aa1cdc8e48f9b642f197e356e634;hp=f75982cc768fa0930e8a8f2651ebaa1cf490ef78;hpb=cf806123ca5faaef483f898daba3f7bd38ec62eb;p=ardour.git diff --git a/gtk2_ardour/ghostregion.cc b/gtk2_ardour/ghostregion.cc index f75982cc76..2f9133803c 100644 --- a/gtk2_ardour/ghostregion.cc +++ b/gtk2_ardour/ghostregion.cc @@ -18,7 +18,7 @@ */ #include "evoral/Note.hpp" -#include "canvas/group.h" +#include "canvas/container.h" #include "canvas/rectangle.h" #include "canvas/wave_view.h" #include "canvas/debug.h" @@ -38,20 +38,20 @@ using namespace ARDOUR; PBD::Signal1 GhostRegion::CatchDeletion; -GhostRegion::GhostRegion (ArdourCanvas::Group* parent, TimeAxisView& tv, TimeAxisView& source_tv, double initial_pos) +GhostRegion::GhostRegion (ArdourCanvas::Container* parent, TimeAxisView& tv, TimeAxisView& source_tv, double initial_pos) : trackview (tv) , source_trackview (source_tv) { - group = new ArdourCanvas::Group (parent); + group = new ArdourCanvas::Container (parent); CANVAS_DEBUG_NAME (group, "ghost region"); group->set_position (ArdourCanvas::Duple (initial_pos, 0)); base_rect = new ArdourCanvas::Rectangle (group); CANVAS_DEBUG_NAME (base_rect, "ghost region rect"); base_rect->set_x0 (0); - base_rect->set_y0 (0); - base_rect->set_y1 (trackview.current_height()); - base_rect->set_outline_what (0); + base_rect->set_y0 (0.0); + base_rect->set_y1 (trackview.current_height() - 1.0); + base_rect->set_outline_what (ArdourCanvas::Rectangle::What (0)); if (!is_automation_ghost()) { base_rect->hide(); @@ -191,7 +191,7 @@ MidiGhostRegion::~MidiGhostRegion() clear_events (); } -MidiGhostRegion::GhostEvent::GhostEvent (NoteBase* e, ArdourCanvas::Group* g) +MidiGhostRegion::GhostEvent::GhostEvent (NoteBase* e, ArdourCanvas::Container* g) : event (e) { rect = new ArdourCanvas::Rectangle (g, ArdourCanvas::Rect (e->x0(), e->y0(), e->x1(), e->y1())); @@ -250,7 +250,7 @@ MidiGhostRegion::update_range () return; } - double const h = trackview.current_height() / double (mv->contents_note_range ()); + double const h = std::max(1., floor (trackview.current_height() / double (mv->contents_note_range ())) -1); for (EventList::iterator it = events.begin(); it != events.end(); ++it) { uint8_t const note_num = (*it)->event->note()->note(); @@ -285,7 +285,7 @@ MidiGhostRegion::add_note (NoteBase* n) } else { const double y = mv->note_to_y(note_num); event->rect->set_y0 (y); - event->rect->set_y1 (y + mv->note_height()); + event->rect->set_y1 (y + std::max(1., floor(mv->note_height()) -1)); } } }