6537 Commits

Author SHA1 Message Date
Martín Capello
c5fccb1499 Add a check to allow exit command execution only when the main window is the currently running 2021-10-20 11:35:54 -03:00
Gaspar Capello
f15589734f Fix double-clicking a .aseprite file in macOS Finder doesn't open the file anymore (fix #2985)
More info in: #3006
2021-10-20 11:05:24 -03:00
David Capello
ea703a38e6 [lua] Add "fgcolorchange" and "bgcolorchange" events to app 2021-10-19 15:18:13 -03:00
David Capello
4dcdcfe387 Fix deadlock destroying SpriteEvents disconnecting observers onCloseDocument
Instead of using an onDestroy(Document), which can be called from the
ClosedDocs background thread, we can disconnect all Doc observers on a
new onCloseDocument() event called from Doc::close() (from the UI
thread).

This deadlock issue was commented here:
https://github.com/aseprite/aseprite/pull/3009#issue-1029413592
2021-10-19 13:01:37 -03:00
David Capello
246b1930f4 Revert "Avoid deadlock of ClosedDocs and SpriteObserver"
This reverts commit 8c902dd8fc7298bac78150eb2c04e440cb8dca6b.
2021-10-19 11:56:36 -03:00
David Capello
5d04eb5a2e [lua] Match WebSocketMessageType constants with the style of all other constants 2021-10-19 11:15:00 -03:00
David Capello
5c30315611 Avoid std::bad_function_call if we don't specify an onreceive callback for the WebSocket 2021-10-19 11:12:15 -03:00
David Capello
c2f24656d7 Don't create a ui::Timer if the UI is not available 2021-10-19 11:11:57 -03:00
David Capello
651fa4a3b6 Stop the auxiliar ui::Timer when the last WebSocket is GC'd 2021-10-19 10:57:25 -03:00
David Capello
b29627c8cb Minor formatting change 2021-10-19 10:50:18 -03:00
lampysprites
6075285b5c Refactor the websocket timer 2021-10-19 12:23:12 +07:00
lampysprites
8c902dd8fc Avoid deadlock of ClosedDocs and SpriteObserver 2021-10-18 23:43:50 +07:00
lampysprites
1f9c2e8987 Handle socket messages when window is out of focus 2021-10-18 23:40:49 +07:00
lampysprites
93fb40ad7d Expose min/max time between websocket reconnects 2021-10-18 23:38:45 +07:00
Martín Capello
d1e02cc3c1 Add listitem support to the ui class generation tool 2021-10-15 10:44:30 -03:00
Martín Capello
e9e515c03f Add slider's "readonly" attribute support to widget_loader 2021-10-14 15:28:07 -03:00
David Capello
6dd128d637 Add main_area in debugger window to show only the buttons initially 2021-10-13 10:35:55 -03:00
David Capello
212e9fbe6c New initial Lua debugger version (#1967)
Incomplete version of the Lua debugger.
Some available features:

* Break in next executed instruction
* Step in, over, out
* See & navigate stacktrace
* See local variables

Some missing features:

* Breakpoints
* Eval user expressions with local variables

The UX needs some improvement yet.
2021-10-12 16:52:14 -03:00
David Capello
3de3ef5635 Minor change in widget_loader.cpp 2021-10-12 15:32:02 -03:00
David Capello
0b1ae09a63 Avoid exception using <textbox /> on .xml widget files
The exception was thrown using std::string(nullptr) constructor.
2021-10-12 15:30:16 -03:00
David Capello
9dbbcbd7ef Fix Theme::drawTextBox() to calculate the correct textbox size
If we are only calculating the textbox size (Graphics* g=nullptr) we
don't need to use the View scroll information anyway.
2021-10-12 15:28:57 -03:00
David Capello
161264a78d Merge branch 'script-api-layer-is-reference' 2021-10-08 11:47:54 -03:00
David Capello
318d5ed6a0 Avoid removing random values from the Lua registry using Events:off()
Fix proposed in:
https://github.com/aseprite/aseprite/pull/2980#issuecomment-938495522
2021-10-08 11:09:47 -03:00
David Capello
2ddbbf00d6 Fix FileAccessMode::Full security value to include OpenSocket
Commented in:
https://github.com/aseprite/aseprite/pull/2980#issuecomment-938495522
2021-10-08 11:05:16 -03:00
David Capello
b9130b83f4 Merge branch 'interprocessing' 2021-10-07 19:38:23 -03:00
David Capello
6e84bb5443 [lua] Ask for permission to open a WebSocket from scripts 2021-10-07 19:37:10 -03:00
David Capello
b9241e6d91 Refactor ask_access() with ResourceType argument 2021-10-07 19:34:40 -03:00
David Capello
4cd137a639 [lua] Add Image.rowStride property now that Image.bytes is available
We need to know the specific rowStride to be able to set a proper
Image.bytes (bytes size = Image.height * Image.rowStride).
2021-10-07 19:10:27 -03:00
David Capello
cd342f5630 [lua] Add events handling with Sprite.events & App.events
Added a new Events object with :on() and :off() methods to start or
stop listening to a specific event respectively. This also allows to
add several callbacks for the same event.

Replaced the temporal Site.onChange & Sprite.onChange implementations.

Related to several issues (enable more possibilities for): #138, #1403, #1949, #2965, #2980
2021-10-07 18:56:39 -03:00
David Capello
0249275f8c [lua] Change MessageType to WebSocketMessageType
Just in case to avoid collision or confusion with some kind of future
MessageType (e.g. ui::MessageType). There are no plans for this, but
we prefer to use WebSocket* prefix.
2021-10-06 19:33:09 -03:00
David Capello
327b38a05d Wrap MESSAGE_TYPE_BINARY with parenthesis (...) 2021-10-06 19:29:19 -03:00
David Capello
0ca411690b Remove trailing whitespaces 2021-10-06 19:17:10 -03:00
David Capello
c117b1b01f Simplify Image_set_bytes(): as bytes_size == bytes_needed we don't need to call std::min() 2021-10-06 19:16:51 -03:00
Jeremy Behreandt
e0a747cad7 Expose Layer Is Reference
Exposes a getter for layer is reference in the Lua scripting API.
2021-10-06 14:04:54 -05:00
David Capello
f8dabfa294 Use portable memcpy instead of memcpy_s 2021-10-04 18:07:20 -03:00
lampysprites
2628afdfce Remove unneeded Sprite.__gc 2021-10-04 23:15:55 +07:00
lampysprites
bf53fa26cd Make onChange callbacks more predictable 2021-10-04 12:17:25 +07:00
lampysprites
a90853f765 Extend WebSocket API 2021-10-03 12:52:37 +07:00
lampysprites
4354be1d7a Add CMake option to disable websockets 2021-10-03 12:40:29 +07:00
lampysprites
711741a358 Remove unneeded lua stack pops 2021-10-03 02:22:15 +07:00
lampysprites
28595a410d Clean up sprite observers on lua GC 2021-10-02 22:10:25 +07:00
lampysprites
83c03a3158 Expose site observer to lua API 2021-10-02 20:09:35 +07:00
lampysprites
2aa3fdbd95 Execute websocket callbacks in the ui thread 2021-10-02 18:34:17 +07:00
lampysprites
22e3e6244a Simplify user API for Sprite observers 2021-10-02 16:22:31 +07:00
lampysprites
f8ef06a86e Lua API Image:bytes - convert lua Image to data string and back 2021-10-02 14:40:28 +07:00
lampysprites
b0f10ee276 Add Websocket client API 2021-10-02 13:57:51 +07:00
David Capello
33595c8bbb Merge branch 'plugin-onenabled' 2021-09-30 15:02:14 -03:00
David Capello
b5d230d52f Increment Lua API version 2021-09-30 15:01:57 -03:00
David Capello
1e92f66ff2 Remove trailing whitespace 2021-09-30 14:22:21 -03:00
David Capello
89904afa82 Simplify app::Job implementation
* Remove pointers to base::thread/mutex
* Use std::thread/mutex as values
2021-09-30 14:09:39 -03:00