summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_routes.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-09-06 22:00:42 +0200
committerRobin Gareus <robin@gareus.org>2014-09-06 22:01:39 +0200
commit78f0007d540f862aa3e94c7ab2ebf61033552162 (patch)
treeba1fd1cb8184c475b07af93d001596fc9502824b /gtk2_ardour/editor_routes.cc
parent6745aa6e526f27e4a5d0a2c04f9e5e60276dc6d8 (diff)
safe EditorRoutes::redisplay()
Diffstat (limited to 'gtk2_ardour/editor_routes.cc')
-rw-r--r--gtk2_ardour/editor_routes.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/gtk2_ardour/editor_routes.cc b/gtk2_ardour/editor_routes.cc
index 7ad4e8a7cd..a33a27c689 100644
--- a/gtk2_ardour/editor_routes.cc
+++ b/gtk2_ardour/editor_routes.cc
@@ -70,6 +70,8 @@ EditorRoutes::EditorRoutes (Editor* e)
: EditorComponent (e)
, _ignore_reorder (false)
, _no_redisplay (false)
+ , _redisplaying (false)
+ , _redisplay_2 (false)
, _adding_routes (false)
, _route_deletion_in_progress (false)
, _menu (0)
@@ -495,9 +497,14 @@ EditorRoutes::show_menu ()
void
EditorRoutes::redisplay ()
{
- if (_no_redisplay || !_session || _session->deletion_in_progress() || _redisplaying) {
+ if (_redisplaying) {
+ _redisplay_2 = true;
return;
}
+ if (_no_redisplay || !_session || _session->deletion_in_progress()) {
+ return;
+ }
+ _redisplay_2 = false;
_redisplaying = true; // tv->show_at() below causes recursive redisplay via handle_gui_changes()
TreeModel::Children rows = _model->children();
@@ -548,6 +555,9 @@ EditorRoutes::redisplay ()
_editor->vertical_adjustment.set_value (_editor->_full_canvas_height - _editor->_visible_canvas_height);
}
_redisplaying = false;
+ if (_redisplay_2) {
+ redisplay();
+ }
}
void