The drawing area is now a container and the layers are the proper drawing widgets. There is a separated layer for the current element so only the current element is redisplayed when drawing.
* Handle stage key events only when the area is reactive. Any reason to handle key events in other cases?
* Move `Escape` key handling to the stage `key-press-event` handler. So leaving the drawing mode with `Escape` is still possible when the overview mode has been entered inadvertently.
* "Undo(Redo) last brushstroke" -> "Undo(Redo)".
* Sync `_updateActionSensitivity` menu method with the new undo/redo behavior.
* Smooth button action is no longer destructive.
* Clean undone smooth transformations when doing a new smooth transformation.
The `undoable` transformation property is not preserved when the element is "stringified". So transformations cannot be undone, once the element is loaded from JSON.
Add intermediate points to make quick free drawings smoother.
Do not redisplay the area at this step (crashes).
Use device.get_coords rather than global.get_pointer because the later return rounded (floor) values.
Fix#45.
With old GS/GJS, some GType names were generated from class names without sanitizing it (e.g. Menu.ActionButton).
Instead of defining all GType names, sanitize all class name as it was GType name, and let GJS generated GType name securely when it is necessary.
Fix#46.
* Take scale factor into account.
* Put it in '_onMenuOpenStateChanged' so the max-height will be updated if the monitor size change.
See PanelMenu.Button.
* Import palettes from a .gpl file (one palette for each column).
* Add possibility to use more than 9 palettes.
* Color display names support.
* color.toJSON for svg and drawing saves, color.toString for display.
* A minimum width for the menu, the same as the aggregate menu, in order to prevent the menu with from growing on submenu open.
* A maximum width for uncontrolled content (font, image and drawing names). Same value and same reason.
* Style the font family labels in idle loop to open the submenu fastly.
* Add the drawing gicons in idle loop to open the submenu smoothly.
The color picker use the ["Color Picker" extensions](https://github.com/tuberry/color-picker) if it is available thanks to `pickAsync` "api". In comparaison to the GS color picker, it provides a colored cursor and a menu to adjust the color.
* element.x and element.y are relative to the area, not to the stage.
* Do not hide and do not set opacity to 0 because ibusCandidatePopup need a mapped text entry to init correctly its position.
use `PangoCairo.show_layout_line` instead of `PangoCairo.show_layout`. It is equivalent.
show_layout (doc): "The top-left corner of the PangoLayout will be drawn at the current point of the cairo context."
show_layout_line (doc): "The origin of the glyphs (the left edge of the line) will be drawn at the current point of the cairo context."
So it is no longer necessary to query `layout.get_baseline()`.
`directory.monitor(...)` -> `directory.monitor_directory(...)`.
It is important to specify that the file to monitor is a directory because maybe the directory does not exist yet and remove events would not be monitored.