+ if (ruler_marker_action->get_active()) {
+ lab_children.push_back (Element(mark_label, PACK_SHRINK, PACK_START));
+ old_unit_pos = marker_group->property_y();
+ if (tbpos != old_unit_pos) {
+ marker_group->move ( 0.0, tbpos - old_unit_pos);
+ }
+ old_unit_pos = marker_bar_group->property_y();
+ if (tbgpos != old_unit_pos) {
+ marker_bar_group->move ( 0.0, tbgpos - old_unit_pos);
+ }
+ marker_bar_group->show();
+ marker_group->show();
+ tbpos += timebar_height;
+ tbgpos += timebar_height;
+ visible_timebars++;
+ } else {
+ marker_bar_group->hide();
+ marker_group->hide();
+ }
+
+ gdouble old_canvas_timebars_vsize = canvas_timebars_vsize;
+ canvas_timebars_vsize = (timebar_height * visible_timebars) + 2.0;
+ gdouble vertical_pos_delta = canvas_timebars_vsize - old_canvas_timebars_vsize;
+
+ if (vertical_pos_delta < 0 && (vertical_adjustment.get_value() + canvas_height) >= vertical_adjustment.get_upper()) {
+ /*if we're at the bottom of the canvas, don't move the _trackview_grooup*/
+ vertical_adjustment.set_upper(vertical_adjustment.get_upper() + vertical_pos_delta);
+ } else {
+ vertical_adjustment.set_upper(vertical_adjustment.get_upper() + vertical_pos_delta);
+ _trackview_group->move (0, vertical_pos_delta);
+ }
+ ruler_label_vbox.set_size_request (-1, (int)(timebar_height * visible_rulers));
+
+ time_canvas_vbox.set_size_request (-1,-1);