more pre-commit testing
[ardour.git] / gtk2_ardour / editor_routes.h
index 9ca2d9f470c877d1b57993a6a698ab4e87a2e0e7..94a2186a4c70eb3b053720e1b88b06e39165f47e 100644 (file)
@@ -38,13 +38,19 @@ public:
        void move_selected_tracks (bool);
        void show_track_in_display (TimeAxisView &);
 
+
        void suspend_redisplay () {
-               _no_redisplay = true;
+               if (!_no_redisplay) {
+                       _no_redisplay = true;
+                       _redisplay_on_resume = false;
+               }
        }
 
        void resume_redisplay () {
                _no_redisplay = false;
-               redisplay ();
+               if (_redisplay_on_resume) {
+                       redisplay ();
+               }
        }
 
        void redisplay ();
@@ -60,6 +66,7 @@ public:
 
 private:
        void initial_display ();
+       void redisplay_real ();
        void on_input_active_changed (std::string const &);
        void on_tv_rec_enable_changed (std::string const &);
        void on_tv_mute_enable_toggled (std::string const &);
@@ -76,6 +83,7 @@ private:
        bool button_press (GdkEventButton *);
        void route_property_changed (const PBD::PropertyChange&, boost::weak_ptr<ARDOUR::Route>);
        void handle_gui_changes (std::string const &, void *);
+       bool idle_update_mute_rec_solo_etc ();
        void update_rec_display ();
        void update_mute_display ();
        void update_solo_display (bool);
@@ -151,9 +159,11 @@ private:
 
        bool _ignore_reorder;
        bool _no_redisplay;
-       bool _redisplaying;
        bool _adding_routes;
        bool _route_deletion_in_progress;
+       bool _redisplay_on_resume;
+       volatile gint _redisplay_active;
+       volatile gint _queue_tv_update;
 
        Gtk::Menu* _menu;
        Gtk::Widget* old_focus;