summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_cursors.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-05-20 23:08:15 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2014-06-03 16:10:27 -0400
commit6019f06bdf919e1d95dd0912116cdec0834af8db (patch)
treebe8d2e41e692c2e8a572f531b546efde67b1503f /gtk2_ardour/editor_cursors.cc
parentfc9e6651dd804672822e06cbd4092c043dc8406d (diff)
different approach to independent scrolling, involving ArdourCanvas::ScrollGroup
The idea now is that a scroll group item can be added to the canvas which will causes its children to scroll in either or both directions (horizontal or vertical). There are few complications: the position() of the ScrollGroup is ambiguous depending on whether you want it with scroll taken into account or not, so Item::canvas_position() was added, which defaults to the same value as Item::position() but is overridden by ScrollGroup to return the position independent of scrolling. This method is used when translating between item/canvas/window coordinate systems. Note that the basic idea is that we MOVE the scroll group when a scroll happens. This mirrors what happens in the GnomeCanvas, where Nick Mainsbridge came up with a great idea that allowed unification of the time bar and track canvases.
Diffstat (limited to 'gtk2_ardour/editor_cursors.cc')
-rw-r--r--gtk2_ardour/editor_cursors.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/gtk2_ardour/editor_cursors.cc b/gtk2_ardour/editor_cursors.cc
index 1dd0d42a51..461fe4758e 100644
--- a/gtk2_ardour/editor_cursors.cc
+++ b/gtk2_ardour/editor_cursors.cc
@@ -33,8 +33,8 @@ using namespace Gtk;
EditorCursor::EditorCursor (Editor& ed, bool (Editor::*callbck)(GdkEvent*,ArdourCanvas::Item*))
: _editor (ed)
- , _time_bars_canvas_item (new ArdourCanvas::Arrow (_editor._time_bars_canvas->root ()))
- , _track_canvas_item (new ArdourCanvas::Line (_editor._track_canvas->root ()))
+ , _time_bars_canvas_item (new ArdourCanvas::Arrow (_editor.get_time_bars_group()))
+ , _track_canvas_item (new ArdourCanvas::Line (_editor.get_track_canvas_group()))
, _length (1.0)
{
CANVAS_DEBUG_NAME (_time_bars_canvas_item, "timebars editor cursor");