Coalesce visual changes to canvas/items and allow canvas to render
authorTim Mayberry <mojofunk@gmail.com>
Sat, 1 Apr 2017 11:33:59 +0000 (21:33 +1000)
committerTim Mayberry <mojofunk@gmail.com>
Sun, 25 Jun 2017 22:40:47 +0000 (08:40 +1000)
commit265f52535a73d996de0e6a61a5b30070c6226cf8
tree0a402ff1af29f0117ad5c647de8e2a5eff1353a9
parentdac25b8db9686f4a6dd03fcc2d616004b1c1dd44
Coalesce visual changes to canvas/items and allow canvas to render

First visual change will be processed as normal and then blocked until the
canvas renders the change. If further visual changes need processing then
Editor::pre_render callback will schedule another expose/redraw/render.

This prevents an issue where idle_visual_changer is called many times in
response to events(keys/motion/etc) but the canvas does not get a chance to
render any but the last one which results in a big pause/jump.

This results in a more responsive canvas and in particular a smoother and more
predictable zooming experience.
gtk2_ardour/editor.cc
gtk2_ardour/editor.h
gtk2_ardour/editor_canvas.cc