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 ();
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 &);
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 ();
bool _ignore_reorder;
bool _no_redisplay;
- bool _redisplaying;
- bool _redisplay_2;
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;