If we call updateDocumentMask() in this point, we'll leave a
sequence of cmds: SetMask(old mask, new mask) -> ClearMask(new mask)
And we need the opposite: ClearMask(old mask) -> SetMask(old mask, new mask)
This bug was introduced in 35229e99a6196d71b90ef2762abb32b0a164f594
Now ContextFlags enable some flags if it detects that the current editor
is in MovingPixelsState. In this way commands "think" that they are able
to lock the document for write access (finally they will be able, because
MovingPixelsState::onBeforeCommandExecution() unlocks the document
just before the command is executed).
Fix#275, fix#690, fix#750
This ink behaves as alpha compositing but doesn't use the opacity slider
(opacity is used from current color's alpha channel). Also, in case that
we pick the mask color, it behaves as the eraser tool.
We have a memory crash dump where wasn't possible to change the
selection transparent color because the data recovery thread was creating
the sprite backup.
With this fix, when the list of possible completions for a filename
is regenerated, we deselect the previously selected item. So the new
list appears without any item selected by default.
We this commit we don't share saved pixels information between
different BrushPreview instances.
If we pressed E key to swich to the eraser tool, and kept it pressed,
moving the mouse cursor over different editors produced invalid restored
pixels.
Some changes needed to do this:
* Added support to show icon+text in ButtonSet items
* Added an extra parameter in Graphics::drawUIString() to avoid drawing
the underscore
* Fixed expansion of ButtonSet items when the grid is resized
* Added support for Alt+mnemonic shortcuts in ButtonSet items
In this change we've added a new MoveOrirginCapability class to share
the Space bar logic to move all points in several controllers
(TwoPointsController, PointByPointController, and FourPointsController).
Related to #741