It looks like Allegro library was changing the locale to the active
one, and it can break things like strtod() (which is used to convert
colors from string format in AddColor command). In this case, if we added
a HSV color with double floating-point precision, it was added incorrectly
because strtod() wasn't taking the decimal part.
On Windows, if we pressed numpad dot key, all timers start working
incorrectly (e.g. animations couldn't be reproduced anymore.).
There was one report about this same issue on Mac OS X.
Now when the user resizes the OS window (a she::Display), it generates
a kDisplayResize she::Event, and this is processed by the UI layer to
redraw the entire ui::Manager.
With this change we remove the obscure "bool" return value in
she::Display::flip() member function.
There were some problems detecting the release of Cmd+O keys after
opening a NSSavePanel. We fixed those problems calling
osx_keyboard_focused/modifiers(0) when we receive a windowDidResignKey
notification.
There are some bug report about problems when the window is minimized.
I was able to reproduce this bug minimizing the window, hiding the dock
(using the system settings), showing the dock again, and trying to
restore the window.
When we change the number of monitors, we've to restore the primary
DirectDraw surface, but it cannot be just "restored", it must be
re-created.
Note: probably the real fix for #436 too
Now we generate she::Event::MouseEnter/Leave events correctly when the
mouse leaves or enters into the window to show the native cursor again
when necessary.
Close#466
- Add ResourceFinder::includeUserDir() (used by aseprite.ini, crash dump,
and aseprite.log). These locations depend on App::isPortable() (if the
app is portable or installed).
- We don't need to change the current directory in
applicationDidFinishLaunching anymore (ResourceFinder::includeDataDir()
takes care about bundles now in a correct way).
- Migrate old ~/.asepriterc to ~/.config/aseprite/aseprite.ini
Now, a set_gfx_mode() (in Mac OS X) can accept almost any resolution,
the screen will be created with the NSView bounds anyway (which can be
smaller than the given size in set_gfx_mode()).
- Fix double-click behavior when double-clicks are generated from
Manager::generateMouseMessages().
- Add Widget::setDoubleClickeable/isDoubleClickeable() member functions
for widgets that accept double-clicks.
Related to issue 359: Program exits unexpectently after minimizing
and maximizing too fast.
I should find the cause of _al_wd_dirty_lines = NULL, but I wasn't able
to reproduce this bug, so at the moment this is the best I can do to avoid
a crash. (I suppose that it's related to a temporary invalid state because
thread sync issues when the screen/window changes its size.)