diff options
author | Nick Mainsbridge <beatroute@iprimus.com.au> | 2008-10-11 00:04:33 +0000 |
---|---|---|
committer | Nick Mainsbridge <beatroute@iprimus.com.au> | 2008-10-11 00:04:33 +0000 |
commit | e17e94e55f481e3aff1e601aff914f7f983af8d0 (patch) | |
tree | e6d1469281e81c0e44496b2d37c68a86f79b95ea /gtk2_ardour/editor_rulers.cc | |
parent | f31179a49085f9d3cb4137c1f5e4bd94429006b7 (diff) |
Fix the nostar ruler hiding bug, rejig ruler bars again, this time making them physical_screen_width wide - preventing artefacts while hiding.
git-svn-id: svn://localhost/ardour2/branches/3.0@3912 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_rulers.cc')
-rw-r--r-- | gtk2_ardour/editor_rulers.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/gtk2_ardour/editor_rulers.cc b/gtk2_ardour/editor_rulers.cc index 3674ce3c90..6f7b51f916 100644 --- a/gtk2_ardour/editor_rulers.cc +++ b/gtk2_ardour/editor_rulers.cc @@ -787,21 +787,24 @@ Editor::update_ruler_visibility () gdouble old_canvas_timebars_vsize = canvas_timebars_vsize; canvas_timebars_vsize = (timebar_height * visible_timebars) - 1; gdouble vertical_pos_delta = canvas_timebars_vsize - old_canvas_timebars_vsize; + vertical_adjustment.set_upper(vertical_adjustment.get_upper() + vertical_pos_delta); + full_canvas_height += vertical_pos_delta; - 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); + if (vertical_adjustment.get_value() != 0 && (vertical_adjustment.get_value() + canvas_height >= full_canvas_height)) { + /*if we're at the bottom of the canvas, don't move the _trackview_group*/ + vertical_adjustment.set_value (full_canvas_height - canvas_height + 1); } else { - vertical_adjustment.set_upper(vertical_adjustment.get_upper() + vertical_pos_delta); - _trackview_group->move (0, vertical_pos_delta); + _trackview_group->property_y () = - get_trackview_group_vertical_offset (); + _trackview_group->move (0, 0); + last_trackview_group_vertical_offset = get_trackview_group_vertical_offset (); } + ruler_label_vbox.set_size_request (-1, (int)(timebar_height * visible_rulers)); time_canvas_vbox.set_size_request (-1,-1); time_canvas_event_box.queue_resize(); compute_fixed_ruler_scale(); update_fixed_rulers(); -// redisplay_tempo (false); time_canvas_event_box.show_all(); ruler_label_event_box.show_all(); |