diff options
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor.h | 1 | ||||
-rw-r--r-- | gtk2_ardour/editor_canvas.cc | 16 | ||||
-rw-r--r-- | gtk2_ardour/public_editor.h | 1 | ||||
-rw-r--r-- | gtk2_ardour/time_axis_view.cc | 3 |
4 files changed, 20 insertions, 1 deletions
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 48aaee427e..4533f99481 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -375,6 +375,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void show_window (); + void ensure_time_axis_view_is_visible (const TimeAxisView& tav); void scroll_tracks_down_line (); void scroll_tracks_up_line (); diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc index f761cfd42b..9cd23e0112 100644 --- a/gtk2_ardour/editor_canvas.cc +++ b/gtk2_ardour/editor_canvas.cc @@ -698,6 +698,22 @@ Editor::entered_track_canvas (GdkEventCrossing */*ev*/) } void +Editor::ensure_time_axis_view_is_visible (const TimeAxisView& tav) +{ + double begin = tav.y_position(); + + double v = vertical_adjustment.get_value (); + + if (begin < v || begin > v + _canvas_height) { + /* try to put the TimeAxisView roughly central */ + if (begin >= _canvas_height/2.0) { + begin -= _canvas_height/2.0; + } + vertical_adjustment.set_value (begin); + } +} + +void Editor::tie_vertical_scrolling () { scroll_canvas_vertically (); diff --git a/gtk2_ardour/public_editor.h b/gtk2_ardour/public_editor.h index 6e2524ae62..0a927c5921 100644 --- a/gtk2_ardour/public_editor.h +++ b/gtk2_ardour/public_editor.h @@ -260,6 +260,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible { virtual framecnt_t current_page_frames() const = 0; virtual double canvas_height () const = 0; virtual void temporal_zoom_step (bool coarser) = 0; + virtual void ensure_time_axis_view_is_visible (const TimeAxisView& tav) = 0; virtual void scroll_tracks_down_line () = 0; virtual void scroll_tracks_up_line () = 0; virtual void prepare_for_cleanup () = 0; diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc index 85535ca82d..71a830982c 100644 --- a/gtk2_ardour/time_axis_view.cc +++ b/gtk2_ardour/time_axis_view.cc @@ -581,8 +581,9 @@ TimeAxisView::name_entry_key_release (GdkEventKey* ev) } while ((*i)->hidden()); } } - + (*i)->name_entry.grab_focus(); + _editor.ensure_time_axis_view_is_visible (**i); } return true; |