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).
* With multiple windows now a ComboBox popup has its own window (and
the size of the popup is not limited to the parent display anymore)
* Clicking in the parent ui::Window that is below the ComboBox listbox
in non-multiple windows mode doesn't start the resizing/moving loop
of the window (the click now is sent to the listbox correctly)
* Limit the position to the workarea (in multiple-windows) and to the
display (in non-multiple windows)
Before this fix if an image were allocated in the clipboard, then you
copied a Cel and wanted to paste it to other Cel, the previous image
were pasted in the canvas instead the last Cel copied in the timeline.
How to reproduce the bug:
- Make a sprite.
- Draw something on the canvas.
- Select a drawn region and copy the selection (the image is now in
the clipboard).
- Add a frame in the time line.
- Copy the Cel of frame 1.
- Select the empty Cel of the frame 2.
- Paste: you'll see the image selected in step 3 was pasted on the
canvas instead the last Cel copied on the timeline.
We've changed a restriction for tilesets: grid's in doc::Tileset must
have origin=(0,0); and the origin of a doc::Grid only makes sense for
the sprite grid (where the origin is set by the user) or for a tilemap
cel (where the origin is the cel origin).