summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-06-27 10:49:05 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2014-06-27 10:49:05 -0400
commitc706b1c4bb172fb3622ada9da879e5c684f94a74 (patch)
tree470567146b627a9e3d90973bb46c65d014fae0ac /gtk2_ardour
parent242181dc104ffc8e77ccf5b777e39f2fbccd8d91 (diff)
replace old implementation of Editor::_ensure_time_axis_view_is_visible() with the guts of Editor::ensure_track_is_visible(), then remove the latter.
Also change all users of ensure_track_is_visible() to use _ensure_time_axis_view_is_visible()
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor.h3
-rw-r--r--gtk2_ardour/editor_canvas.cc41
-rw-r--r--gtk2_ardour/editor_ops.cc43
3 files changed, 32 insertions, 55 deletions
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index bf4783409c..a50fe95649 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -180,7 +180,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
void set_internal_edit (bool yn);
bool toggle_internal_editing_from_double_click (GdkEvent*);
- void _ensure_time_axis_view_is_visible (const TimeAxisView& tav, bool at_top);
+ void _ensure_time_axis_view_is_visible (TimeAxisView const & tav, bool at_top);
void foreach_time_axis_view (sigc::slot<void,TimeAxisView&>);
void add_to_idle_resize (TimeAxisView*, int32_t);
@@ -1949,7 +1949,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
bool entered_track_canvas (GdkEventCrossing*);
void set_entered_track (TimeAxisView*);
void set_entered_regionview (RegionView*);
- void ensure_track_visible (TimeAxisView*);
gint left_automation_track ();
void reset_canvas_action_sensitivity (bool);
diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc
index d0107c789e..cae0199673 100644
--- a/gtk2_ardour/editor_canvas.cc
+++ b/gtk2_ardour/editor_canvas.cc
@@ -805,26 +805,39 @@ Editor::entered_track_canvas (GdkEventCrossing */*ev*/)
}
void
-Editor::_ensure_time_axis_view_is_visible (const TimeAxisView& tav, bool at_top)
+Editor::_ensure_time_axis_view_is_visible (TimeAxisView const & track, bool at_top)
{
- double begin = tav.y_position();
- double v = vertical_adjustment.get_value ();
-
- if (!at_top && (begin < v || begin + tav.current_height() > v + _visible_canvas_height)) {
- /* try to put the TimeAxisView roughly central */
- if (begin >= _visible_canvas_height/2.0) {
- begin -= _visible_canvas_height/2.0;
- }
+ if (track.hidden()) {
+ return;
}
- /* Clamp the y pos so that we do not extend beyond the canvas full
- * height.
+ /* compute visible area of trackview group, as offsets from top of
+ * trackview group.
*/
- if (_full_canvas_height - begin < _visible_canvas_height){
- begin = _full_canvas_height - _visible_canvas_height;
+
+ double const current_view_min_y = vertical_adjustment.get_value();
+ double const current_view_max_y = current_view_min_y + vertical_adjustment.get_page_size();
+
+ double const track_min_y = track.y_position ();
+ double const track_max_y = track.y_position () + track.effective_height ();
+
+ if (!at_top &&
+ (track_min_y > current_view_min_y &&
+ track_max_y <= current_view_max_y)) {
+ return;
+ }
+
+ double new_value;
+
+ if (track_min_y < current_view_min_y) {
+ // Track is above the current view
+ new_value = track_min_y;
+ } else {
+ // Track is below the current view
+ new_value = track.y_position () + track.effective_height() - vertical_adjustment.get_page_size();
}
- vertical_adjustment.set_value (begin);
+ vertical_adjustment.set_value(new_value);
}
/** Called when the main vertical_adjustment has changed */
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 54be3c857f..96be9ed4a5 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -1357,7 +1357,7 @@ Editor::scroll_down_one_track ()
/* move to the track below the first one that covers the */
if (next != track_views.rend()) {
- ensure_track_visible (*next);
+ ensure_time_axis_view_is_visible (**next);
return true;
}
@@ -1390,7 +1390,7 @@ Editor::scroll_up_one_track ()
}
if (prev != track_views.end()) {
- ensure_track_visible (*prev);
+ ensure_time_axis_view_is_visible (**prev);
return true;
}
@@ -5620,7 +5620,7 @@ Editor::select_next_route()
selection->set(current);
- ensure_track_visible(current);
+ ensure_time_axis_view_is_visible (*current);
}
void
@@ -5651,42 +5651,7 @@ Editor::select_prev_route()
selection->set (current);
- ensure_track_visible(current);
-}
-
-void
-Editor::ensure_track_visible(TimeAxisView *track)
-{
- if (track->hidden()) {
- return;
- }
-
- /* compute visible area of trackview group, as offsets from top of
- * trackview group.
- */
-
- double const current_view_min_y = vertical_adjustment.get_value();
- double const current_view_max_y = current_view_min_y + vertical_adjustment.get_page_size();
-
- double const track_min_y = track->y_position ();
- double const track_max_y = track->y_position () + track->effective_height ();
-
- if (track_min_y > current_view_min_y &&
- track_max_y <= current_view_max_y) {
- return;
- }
-
- double new_value;
-
- if (track_min_y < current_view_min_y) {
- // Track is above the current view
- new_value = track_min_y;
- } else {
- // Track is below the current view
- new_value = track->y_position () + track->effective_height() - vertical_adjustment.get_page_size();
- }
-
- vertical_adjustment.set_value(new_value);
+ ensure_time_axis_view_is_visible (*current);
}
void