first compiling, mostly working version of group controls changes
[ardour.git] / gtk2_ardour / editor_routes.h
index 0e30974887ffcd62af9e6d2e0d077c9d73d2f936..bee37378fb9683ea1d264653505d06f40427b313 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 &);
@@ -79,7 +86,7 @@ private:
        bool idle_update_mute_rec_solo_etc ();
        void update_rec_display ();
        void update_mute_display ();
-       void update_solo_display (bool);
+       void update_solo_display ();
        void update_solo_isolate_display ();
        void update_solo_safe_display ();
        void update_input_active_display ();
@@ -152,10 +159,11 @@ private:
 
        bool _ignore_reorder;
        bool _no_redisplay;
-       bool _redisplaying;
        bool _adding_routes;
        bool _route_deletion_in_progress;
-       int  _queue_mute_rec_solo_etc;
+       bool _redisplay_on_resume;
+       volatile gint _redisplay_active;
+       volatile gint _queue_tv_update;
 
        Gtk::Menu* _menu;
        Gtk::Widget* old_focus;