When rendering the rotated result use SOURCE operator instead of OVER.
When top left and bottom right changes at the same time, do it with a set_tl_br function instead of set_tl and then set_br because it could lead to a dimension of zero in one of the dimensions.
Do not forget to destroy Cairo context when not more used.
Fixed Enhancement #409  -  UI : Label + Shortcut on tooltip describing "action"
Fixed Enhancement #442 - Add distinction for disabled keyframes on time track panel and or keyframe widget.

--> Gtk::STATE_INSENSITIVE + Gtk::ARROW_RIGHT for disabled keyframe.

<plus some comments>
Fix Bug #455 - Keyframe widget indicator remains white after drag and drop operation

change STATE_SELECTED to STATE_NORMAL in active keyframe when not dragging
Try to fix the bug but doesn't seem to work properly when combined with rotate.
First commit to change the Cairo render system using Cairo context instead of Cairo surface.
Apply to Layer, Context, Rectangle, Layer_Composite, render and targets Cairo type.
Do not optimize the render of the shape pre-clipping to the canvas  dimensions. Leave it to Cairo API
Rotate Layer: Add support for Cairo render using context
Rotate Layer: Do not rotate through a intermediate surface. Rotate directly the result.
Stretch Layer: Add support for Cairo render using context
Move the Cairo scale and translate commands to the top of the command stack on the targets. It simplifies the code and reduce the number of operations in each vector layer.
Blur_Layer: add support for Cairo render using cairo_t*.
This commit is the base example for all the layers that needs to access the pixels to perform the transformation.
Create a new function cairo_renddesc_untransform and use it in Blur layer
Layer_Translate: add support for Cairo render using cairo_t*.
Zoom: add support for Cairo render using cairo_t*.
Simplify Rectangle layer code
Paste Canvas: add support for Cairo render using cairo_t*.
Layer_Shape: Add function to feather the given Cairo surface.