If start dragging from the ColorButton, we go outside the button, and
then we go back to the same button, we should select the original
color when the whole drag-and-drop process started.
We have also improved the look of the button in that case: the
original color is displayed (instead of the inverted color, which is
when the button is selected, in this way is less confusing).
By moving the code of these methods we enable automated testing of some functionality that depends of the functionality but not depends of the Editor's GUI.
When some of the edges of the point shape area is outside of the canvas the collapseRegionByTiledMode doesn't include the rects that were outside of the canvas.
Clicking outside a popup window we can close several popup
windows (e.g. tool box tooltip + tool box group popup, or brush pop +
brush params popup).
Before this change a kMouseDownMessage in a PopupWindow will close the
window only if the Manager::getTopWindow() was equal to the PopupWindow.
There were an old bug where the brush popup changed its behavior after
opening a BrushSlotParams menu popup i.e. after that the BrushPopup
disappeared just leaving the mouse outside its hot region (but before
that it disappeared clicking outside the BrushPopup).
Anyway with this change the BrushPopup will disappear only clicking
outside the popup in all cases.
In the PalettePopup if the current sprite palette matches one palette,
that palette in the list has a tick, that tick must be updated if we
choose other palette from the list.
* Moved static member functions of OctreeNode to .cpp file (and to
private access because they are using only inside OctreeNode)
* Defined OctreeNodes type (alias for std::vector<OctreeNode*>)
* Changed m_pixelCount to size_t
* Added const modifier to some member functions
* Merged normalizeColor()+LeafColorToColor() -> rgbaColor()
* Refactor children() -> hasChildren() (because the function is only
used to check if there are children in the node)
* Some initial values to member variables to remove constructors
directly
* getModifications() -> modifications()
* Now the restored frame position/maximized flag are saved correctly.
* We've improved the default size to the current workarea of the main
screen.
* Limit the initial frame position to the current available screens
(e.g. the saved frame position could be invalid if the user
unplugged a monitor)
We've to send kCloseMessage first, and then destroy the native
window (so children native window are destroyed correctly when
kCloseMessage is received, e.g. ComboBox popup must destroy its native
window when it receives a kCloseMessage of the parent window).
How the bug could be reproduced (before this fix):
- Select the line tool.
- Click and hold down the left mouse button on the canvas to put the first line point.
- Drag the mouse outside the canvas and move it around (like trying to put the second point of the line outside the canvas).