<div dir="ltr"><div>Last week I was working in improve and finish implementation</div><div>of the reworking of treeview code to improve performance, I reported in [1]</div><div><br></div><div>The new work is here [2] [3]</div>
<div><br></div><div>I am not proposing this for inclusion in 0.102. Sadly is too late, and add API.</div><div>We will test it in AU, and push when 0.104 is open for development.</div><div><br></div><div>Most of the changes are in the toolkit, and grouped in 3 type of changes:</div>
<div><br></div><div>* Small improvements in the rendering code in CellRendererIcon:</div><div>These patches don't break the API, and could be merged upstream.</div><div><a href="https://github.com/godiard/sugar-toolkit-gtk3/commit/b63bceda265541543ffaf20de940ebe689199c43">https://github.com/godiard/sugar-toolkit-gtk3/commit/b63bceda265541543ffaf20de940ebe689199c43</a><br>
</div><div><a href="https://github.com/godiard/sugar-toolkit-gtk3/commit/bbe38b20e27e1ebbe17984c7ca68df8e02b63cba">https://github.com/godiard/sugar-toolkit-gtk3/commit/bbe38b20e27e1ebbe17984c7ca68df8e02b63cba</a><br></div>
<div><a href="https://github.com/godiard/sugar-toolkit-gtk3/commit/142f614f60912d0444414b01248d39dc279bffcc">https://github.com/godiard/sugar-toolkit-gtk3/commit/142f614f60912d0444414b01248d39dc279bffcc</a><br></div><div>
<br></div><div>* Detect when the treeview is scrolling, and disconnect signals,</div><div>and simplify drawing code. </div><div><a href="https://github.com/godiard/sugar-toolkit-gtk3/commit/c45818cb9eb4517e440a1ba078ea48112a15b6cb">https://github.com/godiard/sugar-toolkit-gtk3/commit/c45818cb9eb4517e440a1ba078ea48112a15b6cb</a><br>
</div><div><br></div><div>* Implement a TreeViewInvoker, to replace the CellRendererInvoker.</div><div>The responsability of show the palettes is moved from the CellRenderer to the Treeview,</div><div>as a consequence, the renderer code is much simpler, and we don't have the </div>
<div>7 cellrendeers attached to all the mouse and touch signals.</div><div><a href="https://github.com/godiard/sugar-toolkit-gtk3/commit/5f5269d8db949cb536c75dcd707360b241f3ef08">https://github.com/godiard/sugar-toolkit-gtk3/commit/5f5269d8db949cb536c75dcd707360b241f3ef08</a><br>
</div><div><br></div><div>These are the changes in Sugar to use the new api:</div><div><a href="https://github.com/godiard/sugar/commit/24419d9156bfcb55213deb0f5977cd0847600f9a">https://github.com/godiard/sugar/commit/24419d9156bfcb55213deb0f5977cd0847600f9a</a><br>
</div><div><a href="https://github.com/godiard/sugar/commit/379da723f2fa75d39c9e2aa1cbf7ee6a9c4034fa">https://github.com/godiard/sugar/commit/379da723f2fa75d39c9e2aa1cbf7ee6a9c4034fa</a><br></div><div><br></div><div>Testing and comments is welcomed.</div>
-- <br><div dir="ltr">Gonzalo Odiard<br><br><div>SugarLabs - Software for children learning <br></div><div><br></div><div>[1] <a href="http://lists.sugarlabs.org/archive/sugar-devel/2014-February/047236.html">http://lists.sugarlabs.org/archive/sugar-devel/2014-February/047236.html</a></div>
<div>[2] <a href="https://github.com/godiard/sugar-toolkit-gtk3/commits/treeview_performance">https://github.com/godiard/sugar-toolkit-gtk3/commits/treeview_performance</a></div><div>[3] <a href="https://github.com/godiard/sugar/commits/treeview_performance">https://github.com/godiard/sugar/commits/treeview_performance</a></div>
</div>
</div>