
Bugs

 o Currently the canvas widget must be placed in a GTK+ window before any
   calls are used that would cause a canvas update.
   This is because the canvas needs a window to create a cairo_t to do the
   position calculations. We may use a temporary image cairo_t in future to
   avoid this issue.

 o I need to check the bounds are being calculated correctly so that they
   are correct for all zoom settings. Since cairo uses fixed point maths
   and I think only calculates up to a certain tolerance there might be
   slight errors in our gdouble results. So as the canvas is scaled this
   could eventually lead to the bounds being a pixel out, leading to painting
   errors. Maybe we should extend any bounds returned from cairo slightly to
   cover the maximum possible errors.

 o GooCanvasImage - redrawing artifacts in demo when zoom>1.
   Seems to be a bug in cairo, introduced in 1.3.12.
   See http://bugs.freedesktop.org/show_bug.cgi?id=10508


Features definitely needed:

 o Editable text item - a port of GtkTextView.
 o Tooltips - I have code to support tooltips using the new API in GTK+ 2.12.


Possible additional features:

 o Caching of rendered items to improve performance. Items would have a cache
   option with choices like Never, Always and WhenVisible.
 o Sticky items that don't move at all as the canvas is scrolled & zoomed.
 o Filters like in SVG, to add graphical effects.
 o Support using the same item in different places, like SVG 'use'.
 o Support using system color names, like SVG, e.g. "ActiveBorder".
   This helps you write widget-like items that fit in with the rest of GTK+.

