removal of sundry Adjustments and consolidation of scrolling around two editor-owned...
authorPaul Davis <paul@linuxaudiosystems.com>
Sat, 13 Apr 2013 11:29:49 +0000 (07:29 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Sat, 13 Apr 2013 11:29:49 +0000 (07:29 -0400)
gtk2_ardour/editor.cc
gtk2_ardour/editor.h
gtk2_ardour/editor_canvas.cc

index 90507972160bab3eca26894dd8b8c4fbb519afea..04f4f514fd72ac8945ffaf1f30a84d636cc830d5 100644 (file)
@@ -254,6 +254,10 @@ Editor::Editor ()
          */
 
        , vertical_adjustment (0.0, 0.0, 10.0, 400.0)
+       , horizontal_adjustment (0.0, 0.0, 1e16)
+       , unused_adjustment (0.0, 0.0, 10.0, 400.0)
+
+       , controls_layout (unused_adjustment, vertical_adjustment)
 
          /* tool bar related */
 
index 6158aac5e896bbbe2ca374f9c7e3091b87a32f13..2da7650ce5c12fa7fa830d79621c4e62e26cd790 100644 (file)
@@ -696,12 +696,9 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
 
        ArdourCanvas::GtkCanvas* _track_canvas;
        ArdourCanvas::GtkCanvasViewport* _track_canvas_viewport;
-        Gtk::Adjustment* _track_canvas_hadj;
-        Gtk::Adjustment* _track_canvas_vadj;
 
         ArdourCanvas::GtkCanvas* _time_bars_canvas;
         ArdourCanvas::GtkCanvasViewport* _time_bars_canvas_viewport;
-       Gtk::Adjustment* _time_bars_canvas_hadj;
        Gtk::Adjustment* _time_bars_canvas_vadj;
 
        bool within_track_canvas;
@@ -970,7 +967,9 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
 
        /** the adjustment that controls the overall editor vertical scroll position */
        Gtk::Adjustment     vertical_adjustment;
+        Gtk::Adjustment     horizontal_adjustment;
 
+        Gtk::Adjustment     unused_adjustment; // yes, really; Gtk::Layout constructor requires refs
        Gtk::Layout         controls_layout;
        bool control_layout_scroll (GdkEventScroll* ev);
        void reset_controls_layout_width ();
index 0b133cea19bca3d20a4dc2c22e3942c37515535e..901b433c8430d2ae957f49c56b6b53fd55994c37 100644 (file)
@@ -68,16 +68,11 @@ const double max_canvas_coordinate = (double) JACK_MAX_FRAMES;
 void
 Editor::initialize_canvas ()
 {
-       /* XXX */
-
-       _track_canvas_hadj = new Adjustment (0, 0, 1e16);
-       _track_canvas_vadj = new Adjustment (0, 0, 1e16);
-       _track_canvas_viewport = new ArdourCanvas::GtkCanvasViewport (*_track_canvas_hadj, *_track_canvas_vadj);
+       _track_canvas_viewport = new ArdourCanvas::GtkCanvasViewport (horizontal_adjustment, vertical_adjustment);
        _track_canvas = _track_canvas_viewport->canvas ();
 
-       _time_bars_canvas_hadj = new Adjustment (0, 0, 1e16);
        _time_bars_canvas_vadj = new Adjustment (0, 0, 1e16);
-       _time_bars_canvas_viewport = new ArdourCanvas::GtkCanvasViewport (*_time_bars_canvas_hadj, *_time_bars_canvas_vadj);
+       _time_bars_canvas_viewport = new ArdourCanvas::GtkCanvasViewport (horizontal_adjustment, *_time_bars_canvas_vadj);
        _time_bars_canvas = _time_bars_canvas_viewport->canvas ();
        
        _verbose_cursor = new VerboseCursor (this);
@@ -736,10 +731,6 @@ Editor::ensure_time_axis_view_is_visible (const TimeAxisView& tav)
 void
 Editor::tie_vertical_scrolling ()
 {
-       _track_canvas_vadj->set_value (vertical_adjustment.get_value ());
-
-       controls_layout.get_vadjustment()->set_value (vertical_adjustment.get_value());
-
        if (pending_visual_change.idle_handler_id < 0) {
                _summary->set_overlays_dirty ();
        }
@@ -748,8 +739,7 @@ Editor::tie_vertical_scrolling ()
 void
 Editor::set_horizontal_position (double p)
 {
-       _track_canvas_hadj->set_value (p);
-       _time_bars_canvas_hadj->set_value (p);
+       horizontal_adjustment.set_value (p);
 
        leftmost_frame = (framepos_t) floor (p * samples_per_pixel);
 
@@ -763,15 +753,6 @@ Editor::set_horizontal_position (double p)
        update_video_timeline();
 
        HorizontalPositionChanged (); /* EMIT SIGNAL */
-
-#ifndef GTKOSX
-       if (!autoscroll_active && !_stationary_playhead) {
-               /* force rulers and canvas to move in lock step */
-               while (gtk_events_pending ()) {
-                       gtk_main_iteration ();
-               }
-       }
-#endif
 }
 
 // CAIROCANVAS