diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index d8234a0b67..e70ab4fc5d 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -80,6 +80,7 @@ #include "ardour/utils.h" #include "canvas/debug.h" +#include "canvas/scroll_group.h" #include "canvas/text.h" #include "control_protocol/control_protocol.h" @@ -2580,6 +2581,18 @@ Editor::get_state () return *node; } +/** Return true if coordinate given by (@param x, @param @y) is within what we define as the "track area". + * Return false otherwise. + * + * @param x : x-axis coordinate in canvas coordinate space + * @param y : x-axis coordinate in canvas coordinate space + */ +bool +Editor::inside_track_area (double x, double y) const +{ + return hv_scroll_group->covers (ArdourCanvas::Duple (x, y)); +} + /** if @param trackview_relative_offset is true, @param y y is an offset into the trackview area, in pixel units * if @param trackview_relative_offset is false, @param y y is a global canvas * coordinate, in pixel units * diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 6e50d87be2..6c3102e081 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -485,6 +485,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD ArdourCanvas::GtkCanvasViewport* get_track_canvas () const; + bool inside_track_area (double x, double y) const; + void override_visible_track_count (); /* Ruler metrics methods */