2.1.2
-----
- Fix API compatibility: restore draw_all attribute with draw method

2.1.1
-----
- Allow for custom update context for Canvas
- Render (GTK) background for the view
- Allow FreeHandPainter to be a child of BoundingBoxPainter

2.1.0
-----
- Fix issue where port could not be updated when reconnecting two items
- Documentation fixes
- BoundingBoxPainter now takes an Item painter as its argument
  (composition over inheritance)

2.0.1
-----
- Fix issue where undo events for handle movements were not recorded

2.0.0
-----
- Drop support for Python 2.7

1.1.2
-----
- Fix issue with placing popovers in the new

1.1.1
-----
- Fix issue where views are not rendered

1.1.0
-----
- Remove dependency on simplegeneric and decorator
- Speed up rendering by using a back-buffer
- Deprecate Handle.x and Handle.y, use Handle.pos instead

1.0.0
-----
- Change license from LGPL 2.0 to Apache 2.0
- Port to Python 3 with support for 3.5, 3.6, and 3.7
- Python < 2.7 is no longer supported
- Port from GTK+ 2 and PyGTK to GTK+ 3 with PyGObject
- Migrate tests from Nose to PyTest with Tox
- Reorganize project files
- Overhaul the README
- Add contributing guide and code of conduct
- Adopt Black as code formatter
- Add Continuous Integration with Travis and Read The Docs

0.7.2
-----
- Fix bug in calculating bounding box for rotated text
- Few minor updates

0.7.1
-----
- Views no longer lose reference to canvas on unrealize()
- bug fix in log message

0.7.0
-----
- Painters are bound to a specific view, like tools
- Introduced aspects for finding items and handles
- New feature: Guides, for aligning elements
- Free hand drawing style

0.6.0
-----
- Handlers are no longer called recursively for observed methods/properties.
- removed enable_dispatching() and disable_dispatching() calls.
- Made aspect code simpler.
- Moved disconnect code from tool to aspect, as stated in Aspect's docstring.
- Fixed issues in connections.
- Lot's of fixes and testing has been done on the undo mechanism.

0.5.0
-----
- Split tools in tools and aspects, separating the _what_ from the _how_.
  For this, a dependency to the simplegeneric module is introduced.
- Renamed VariablePoint to Position.
- Handle is no longer inheriting from VariablePoint/Position.
- Handle connections are no longer registered on the handle, but are
  maintained in the Canvas instance. This makes for much easier querying
  (e.g. which elements are attached to some element).
  Added a Table class to support this functionality.
- Added a timeout property on the @async decorator. The method is invoked
  the amount of milliseconds after the first invocation.

0.4.1
------
- Call Item._set_canvas after matrix update
- Verify if value changed before marking variable as dirty.

0.4.0
------
- allow to define connectable parts of item's (ports feature)
- implemented default connection tool (thanks to ports feature)
- line segment tool implemented (code taken from gaphor)
- implemented Item.constraint method to simplify item's constraint
  creation
- The canvas (-view) is no longer tied to the (0, 0) position. Scrolling can
  be done quite fluidly with the new PanTool implementation.
- API changes
  - use positions instead of "x, y" pairs in all method calls
