3147 Commits

Author SHA1 Message Date
David Capello
aeb1a799d7 Improve write/read stability of backup data
Now we backup 3 versions for each object. And when an object is saved
correctly on disk, a "magic number" is saved at the beginning of the file.
In this way we know that the file really represents the full object (and
a crash was not occurred in the middle of the process).
2015-04-22 16:46:57 -03:00
David Capello
8e6080af0b data_recovery.cpp: Fix TRACE() calls 2015-04-22 16:43:37 -03:00
David Capello
073831472c Catch exception if DocumentDestroyer cannot lock the document to close it 2015-04-22 16:42:55 -03:00
David Capello
134dad8d5f Use an object to implement crash::write_document() to avoid versions and dir params 2015-04-21 16:52:41 -03:00
David Capello
4b083030f1 Merge branch 'master' of git@github.com:aseprite/aseprite.git 2015-04-21 14:27:01 -03:00
David Capello
4e5860ce66 Remove (now) unnecessary update_screen_for_document() after saving process
If the sprite is locked and we cannot redraw the Editor, some defered
invalidations will be update the screen correctly.
2015-04-21 13:36:47 -03:00
David Capello
b699b92a3a Add defer_invalid_rect() to re-invalidate areas that we weren't able to paint
Sometimes, the Editor and Timeline widgets cannot be validated because the
document is locked (i.e. cannot be read). In these cases we can start a
timer to re-invalidate those areas again (and try to draw them when the
document is unlocked).
2015-04-21 13:31:24 -03:00
David Capello
34adca2933 Keep a render::Zoom instead of percentage "int" value in ZoomCommand() 2015-04-21 13:20:42 -03:00
David Capello
9fa26dc2f4 Fix problem saving transparent GIF and PNG files when the background layer is hidden 2015-04-21 13:20:36 -03:00
David Capello
2453f2de97 Add debug traces to see that we are waiting for a document lock 2015-04-21 12:15:33 -03:00
David Capello
44bf546d0d Don't wait for DocumentReader lock in Editor/Timeline::onPaint() 2015-04-21 12:14:56 -03:00
David Capello
0f4705e67b Remove unnecessary ContextWriter at the end of SpriteSizeCommand 2015-04-21 12:14:02 -03:00
David Capello
8e150dcbee We don't need a DocumentWriter lock to make the session backup 2015-04-21 11:06:46 -03:00
David Capello
e4f62942b7 Fix scroll issues when we clone a view 2015-04-21 10:24:42 -03:00
David Capello
e17804e9ff Remove unnecessary locks in app::Job 2015-04-20 17:30:01 -03:00
David Capello
395baa3296 Don't lock for write when we save a document (we just need to read it) 2015-04-20 17:28:10 -03:00
David Capello
fedf818cda Support more percentages as parameter in ZoomCommand (related to #633)
In this way we could have a command to set zoom to 50%
2015-04-20 16:57:24 -03:00
David Capello
21c4fd51d9 Move app::DocumentLocation to doc::Site
This is a first step to include the current selected range of layers
and frames inside the doc::Site structure. So in the future we'll not need
to know about the Timeline in commands that handle those ranges.
2015-04-20 16:27:09 -03:00
David Capello
c5cf848d37 Fix tab height when we're docking a tab in the empty main Tabs widget 2015-04-20 14:04:38 -03:00
David Capello
47d2d8f902 Support to clone tabs using Ctrl+drag (close #634) 2015-04-20 13:49:25 -03:00
David Capello
441c796c1a Add details about Retina display in INSTALL.md 2015-04-17 14:30:09 -03:00
David Capello
da342f29f3 Several changes related to UI scale
* UI scale is an experimental option (it needs app restart)
* We can change the Screen Scale without restarting the app now
* Hide reloading of skin data in SkinTheme::onRegenerate()
* Now setFontOfAllWidgets() is called from Theme::regenerate()
* Remove reload_default_font()
* Simplify gui_setup_screen()
2015-04-17 12:24:33 -03:00
David Capello
240149ef6f Add UI Scale option (as separated concept from Screen Scale)
With this change we don't adapt the UI Scale automatically depending of
the display size, as it cannot be adjusted dynamically anyway (as the app
must be restarted to take this change correctly).
2015-04-17 11:11:36 -03:00
David Capello
39859e9858 Disable Ctrl+Tab (and Ctrl+Shift+Tab) when we are dragging tabs 2015-04-17 09:49:49 -03:00
David Capello
61fa0b454f Tabs: Use selectTabInternal() in kMouseDownMessage handler 2015-04-17 09:28:52 -03:00
David Capello
81f41e6793 Fix crash pressing Ctrl+Tab (or Ctrl+Shift+Tab) when there are no tabs 2015-04-17 09:25:53 -03:00
David Capello
7e65cab22f Merge branch 'master' of git@github.com:aseprite/aseprite.git 2015-04-16 20:32:41 -03:00
David Capello
4bb7c87af5 Recreate SkiaSurface when the window is resized 2015-04-16 20:32:15 -03:00
David Capello
d36883e61e Disable unpremultiplied colors in skia port 2015-04-16 20:31:17 -03:00
David Capello
1d87bbd6b3 Add she/win/vk.cpp with win32vk_to_scancode() function 2015-04-16 20:30:13 -03:00
David Capello
b884e81cf3 Implement some SkiaSurface member functions using a SkCanvas 2015-04-16 20:27:23 -03:00
David Capello
55cafac735 Proper clipping in CommonLockedSurface::drawColoredRgbaSurface() impl 2015-04-16 20:26:05 -03:00
David Capello
cbed44e627 Add LockedSurface::lockedWidth/Height() member functions 2015-04-16 20:25:40 -03:00
David Capello
6b25004b48 Add SkiaSurface::swapBitmap() 2015-04-16 15:38:44 -03:00
David Capello
46a03b1f4c Fix SharedPtr usage in SkiaSystem::loadSurface() 2015-04-16 15:37:31 -03:00
David Capello
ef522206f4 Avoid warning about unused var in release mode 2015-04-16 14:40:55 -03:00
David Capello
2b838dc7f3 Add USE_NATIVE_WIN32_CLIPBOARD in app/util/clipboard.cpp 2015-04-16 13:40:30 -03:00
David Capello
aae3e69fda Fix bug showing frame # and opacity slider in StatusBar without an active document 2015-04-16 13:14:39 -03:00
David Capello
5a5a6fe4f6 Replace slider_change_hook() with StatusBar::onCelOpacityChange() 2015-04-16 13:07:14 -03:00
David Capello
a4bf93e4d5 MaskByColorCommand needs an active image to be executed (fix #627) 2015-04-16 12:55:39 -03:00
David Capello
087b52213c Add new matrices to create an outline in RGB transparent layers 2015-04-16 11:08:35 -03:00
David Capello
849e40b0f9 Fix crash when PixelsMovement() wants to create an extra cel without enough memory v1.1-beta2 2015-04-15 13:59:41 -03:00
David Capello
43a0279a24 Fix crash converting sprite to grayscale 2015-04-15 13:58:35 -03:00
David Capello
13a977f0e6 Continue loading backup data if we fail loading one image 2015-04-15 12:20:41 -03:00
David Capello
7fc2e3bec8 Use fast rotation if we don't have enough memory for RotSprite 2015-04-15 10:13:06 -03:00
David Capello
4dbff50f1e Catch any kind of exception in Editor::onProcessMessage() 2015-04-15 10:06:55 -03:00
David Capello
19d2713d8f Avoid crash when we change the rotation algorithm
This can happen when RotSprite needs a lot of memory and we change the
algorithm from Fast to RotSprite.
2015-04-15 10:06:38 -03:00
David Capello
4e1cebf966 Give some timeout to lock the sprite in certain operations 2015-04-15 09:59:36 -03:00
David Capello
66c5f76146 Avoid crashes when some EditorState in Editor::onProcessMessage() cannot lock the document 2015-04-15 09:58:41 -03:00
David Capello
b4d97a4d35 Fix scroll problem with EditorView when we drag-and-drop Tabs v1.1-beta1 2015-04-10 13:02:15 -03:00