bool
Editor::track_canvas_idle ()
{
-
if (canvas_idle_queued) {
canvas_idle_queued = false;
}
canvas_width = canvas_allocation.get_width();
canvas_height = canvas_allocation.get_height();
+ full_canvas_height = canvas_height;
+
+ if (session) {
+ TrackViewList::iterator i;
+ double height = 0;
+
+ for (i = track_views.begin(); i != track_views.end(); ++i) {
+ if ((*i)->control_parent) {
+ height += (*i)->effective_height;
+ height += track_spacing;
+ }
+ }
+
+ if (height) {
+ height -= track_spacing;
+ }
+
+ full_canvas_height = height;
+ }
+
+
zoom_range_clock.set ((nframes_t) floor ((canvas_width * frames_per_unit)));
edit_cursor->set_position (edit_cursor->current_frame);
playhead_cursor->set_position (playhead_cursor->current_frame);
set<Playlist*> affected_playlists;
pair<set<Playlist*>::iterator,bool> insert_result;
+ // TODO: Crossfades need to be copied!
for (list<RegionView*>::const_iterator i = selection->regions.by_layer().begin(); i != selection->regions.by_layer().end(); ++i) {
RegionView* rv;
new_regionviews.push_back (latest_regionview);
}
}
+
+
if (new_regionviews.empty()) {
return;
{
double x1 = frame_to_pixel (start);
double x2 = frame_to_pixel (end);
- double y2 = canvas_height - 2;
+ double y2 = full_canvas_height - 1.0;
zoom_rect->property_x1() = x1;
zoom_rect->property_y1() = 1.0;