X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gtk2_ardour%2Feditor_routes.h;h=bee37378fb9683ea1d264653505d06f40427b313;hb=552e995297d7706790ed2dfaab75749e914ad317;hp=9ca2d9f470c877d1b57993a6a698ab4e87a2e0e7;hpb=95a7356018da82f24a77dadeffd33b7074680ecc;p=ardour.git diff --git a/gtk2_ardour/editor_routes.h b/gtk2_ardour/editor_routes.h index 9ca2d9f470..bee37378fb 100644 --- a/gtk2_ardour/editor_routes.h +++ b/gtk2_ardour/editor_routes.h @@ -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,9 +83,10 @@ private: bool button_press (GdkEventButton *); void route_property_changed (const PBD::PropertyChange&, boost::weak_ptr); 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); + void update_solo_display (); void update_solo_isolate_display (); void update_solo_safe_display (); void update_input_active_display (); @@ -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;