Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions Changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,44 @@ else
-- Future versions will be 2, 3, etc.
end
```

## v1.3.17

* [`app.apiVersion`](api/app.md#appapiversion) is `39`
* Fixed security issue where a script could gain already given access from other script

## v1.3.17-beta1

* [`app.apiVersion`](api/app.md#appapiversion) is `38`
* Added Dialog `onresize` event [#4736](https://github.com/aseprite/aseprite/issues/4736) [#5354](https://github.com/aseprite/aseprite/issues/5354)
* Fixed `Image:drawSprite()` call when the user is drawing [#3916](https://github.com/aseprite/aseprite/issues/3916)

## v1.3.16

* [`app.apiVersion`](api/app.md#appapiversion) is `38`
* **New Behavior**: Property changes outside a transaction don't generate undo steps [#4568](https://github.com/aseprite/aseprite/issues/4568)
* **New Behavior**: Layer flag changes inside a transaction generate undo steps [#2991](https://github.com/aseprite/aseprite/issues/2991)
* Avoid clicking an invalid button after a new window is displayed [#4757](https://github.com/aseprite/aseprite/issues/4757)
* Don't reset dialog bounds after `Dialog:show{autoscrollbars}` when `dialog.bounds` were set before [#4758](https://github.com/aseprite/aseprite/issues/4758)
* Allow mouse wheel scrolling in dialogs with `autoscrollbars` option [#5116](https://github.com/aseprite/aseprite/issues/5116)
* Fixed widgets interactivity using bounds and `autoscrollbars` in `Dialog:show{}` [#5516](https://github.com/aseprite/aseprite/issues/5516)
* Fixed dialog with scrollbar wrong size in a particular case [#5396](https://github.com/aseprite/aseprite/issues/5396) [#5481](https://github.com/aseprite/aseprite/issues/5481)
* Fixed crash using a `label` field in `Dialog:endtags{}` [#5114](https://github.com/aseprite/aseprite/issues/5114)
* Fixed disabled checkbox style change after `Dialog:combobox()` change [#4988](https://github.com/aseprite/aseprite/issues/4988)
* Fixed crash setting properties with its same value [#5519](https://github.com/aseprite/aseprite/issues/5519)
* Added `Sprite.isValid` [#5017](https://github.com/aseprite/aseprite/issues/5017)
* Fixed console re-centering [#5349](https://github.com/aseprite/aseprite/issues/5349) [#5562](https://github.com/aseprite/aseprite/issues/5562)
* Fixed calling filters inside the same `app.transaction()` with `ui=true` [#5572](https://github.com/aseprite/aseprite/issues/5572)
* Don't show progress bar for filters when running with `ui=false` [#5537](https://github.com/aseprite/aseprite/issues/5537)

## v1.3.15.5

* [`app.apiVersion`](api/app.md#appapiversion) is `37`
* Avoid setting window bounds when the app is closing [#5384](https://github.com/aseprite/aseprite/issues/5384)
* Fixed centering a dialog with `autoscrollbars` behavior [#5485](https://github.com/aseprite/aseprite/issues/5485)
* `WebSocket`: Added `error` param to `onreceive` handler
* Fixed `app.clipboard.content.selection` property

## v1.3.16-beta1

* [`app.apiVersion`](api/app.md#appapiversion) is `36`
Expand Down
2 changes: 1 addition & 1 deletion api/app_clipboard.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## app.clipboard
# app.clipboard

A set of functions to handle the clipboard.

Expand Down
14 changes: 7 additions & 7 deletions api/app_command.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ app.command.CommandName { param1=value1, param2=value2, ... }
Executes the given command named `CommandName` with the specified parameters.

* app.command.About <sup>[[UI]](#requiresUI "Requires UI")</sup>
* Opens the About Aseprite window
* Opens the About Aseprite window
* [app.command.AddColor](command/AddColor.md#addcolor "Adds a new color to the palette.")
* app.command.AdvancedMode <sup>[[UI]](#requiresUI "Requires UI")</sup>
* Toggles the application's "Advanced Mode"
Expand Down Expand Up @@ -72,8 +72,8 @@ Executes the given command named `CommandName` with the specified parameters.
* Resets the zoom on the current view to fit the screen
* [app.command.FlattenLayers](command/FlattenLayers.md#flattenlayers)
* [app.command.Flip](command/Flip.md#flip)
* [app.command.FrameProperties](command/FrameProperties.md#frameproperties) <sup>[[*]](#canHaveUI "Can have UI interaction")</sup>
* [app.command.FrameTagProperties](command/FrameTagProperties.md#frametagproperties) <sup>[[*]](#canHaveUI "Can have UI interaction")</sup>
* [app.command.FrameProperties](command/FrameProperties.md#frameproperties) <sup>[[UI]](#requiresUI "Requires UI")</sup>
* [app.command.FrameTagProperties](command/FrameTagProperties.md#frametagproperties) <sup>[[UI]](#requiresUI "Requires UI")</sup>
* app.command.FullscreenPreview <sup>[[UI]](#requiresUI "Requires UI")</sup>
* Opens the full screen preview
* app.command.GotoFirstFrameInTag <sup>[[UI]](#requiresUI "Requires UI")</sup>
Expand Down Expand Up @@ -129,7 +129,7 @@ Executes the given command named `CommandName` with the specified parameters.
* [app.command.MoveMask](command/MoveMask.md#movemask "Moves the selection boundaries or its content (pixels).")
* app.command.NewBrush <sup>[[UI]](#requiresUI "Requires UI")</sup>
* Create a new brush from the current selection/editor
* [app.command.NewFile](command/NewFile.md#newfile)
* [app.command.NewFile](command/NewFile.md#newfile) <sup>[[*]](#canHaveUI "Can have UI interaction")</sup>
* app.command.NewFrameTag <sup>[[UI]](#requiresUI "Requires UI")</sup>
* Shows the New Tag dialog for the selected frame range
* [app.command.NewFrame](command/NewFrame.md#newframe)
Expand Down Expand Up @@ -181,7 +181,7 @@ Executes the given command named `CommandName` with the specified parameters.
* Re-selects a hidden selection mask
* app.command.ReverseFrames
* Reverses frames (only if there are 2 or more in the selected range)
* [app.command.Rotate](command/Rotate.md#rotate)
* [app.command.Rotate](command/Rotate.md#rotate) <sup>[[*]](#canHaveUI "Can have UI interaction")</sup>
* app.command.RunScript
* Run a script given by the `filename` parameter - any other parameters are passed to the script.
* [app.command.SaveFile](command/SaveFile.md#savefile) <sup>[[*]](#canHaveUI "Can have UI interaction")</sup>
Expand Down Expand Up @@ -228,7 +228,7 @@ Executes the given command named `CommandName` with the specified parameters.
* Toggles the snap to grid property
* app.command.SpriteProperties
* Shows the sprite properties window
* [app.command.SpriteSize](command/SpriteSize.md#spritesize)
* [app.command.SpriteSize](command/SpriteSize.md#spritesize) <sup>[[*]](#canHaveUI "Can have UI interaction")</sup>
* app.command.Stroke
* Performs a foreground color stroke fill on the current selection mask
* app.command.SwitchColors <sup>[[UI]](#requiresUI "Requires UI")</sup>
Expand All @@ -245,7 +245,7 @@ Executes the given command named `CommandName` with the specified parameters.
* Toggles the timeline thumbnails preference
* app.command.ToggleWorkspaceLayout
* Toggles the Workspace Layout UI. This command only opens or closes the workspace layout mode, and cannot be used to select a specific Layout.
* app.command.UndoHistory
* app.command.UndoHistory <sup>[[UI]](#requiresUI "Requires UI")</sup>
* Shows the undo history window
* app.command.Undo
* app.command.UnlinkCel
Expand Down
3 changes: 3 additions & 0 deletions api/color.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,13 @@ c = Color{ hue=360.0, saturation=1.0, value=1.0, alpha=255 }
c = Color{ hue=360.0, saturation=1.0, lightness=1.0, alpha=255 }
c = Color{ gray=255, alpha=255 }
c = Color{ index=integer }
c = Color{ tile=integer }
c = Color(integer)
```

* If `alpha` argument is not specified, it's 255 by default (opacity = 100%).
* The `Color{ index=integer }` returns the color at the specified index from the palette.
* The `Color{ tile=integer }` returns a special "tile color" at the specified index from the current tileset. This "tile color" can be used to pass tiles into parameters that require the color object (e.g: `app.useTool{color=Color{tile=integer}}`).
* The `Color(integer)` constructor receives a [pixel color](pixelcolor.md#apppixelcolor)
and the integer is interpreted depending on the [active sprite](app.md#appsprite).

Expand Down
2 changes: 2 additions & 0 deletions api/command/ChangePixelFormat.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

```lua
app.command.ChangePixelFormat {
ui=boolean,
format=string,
dithering=string,
["dithering-matrix"]=string,
Expand All @@ -13,6 +14,7 @@ app.command.ChangePixelFormat {

Changes the [ColorMode](../colormode.md) of the active [sprite](../sprite.md)

* `ui`: Shows the ui. Defaults to `true`.
* `format`: `"rgb"`, `"gray"`, or `"indexed"`.
* `dithering`: Optional, `"ordered"`, `"old"` `"error-diffusion"`
* `dithering-matrix`: Optional, `"bayer8x8"`, `"bayer4x4"`, or `"bayer2x2"` (when When `dithering` is `ordered` or `old`).
Expand Down
7 changes: 2 additions & 5 deletions api/command/SaveFile.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,12 @@ little differences by default:

Parameters:

* `ui`: Shows the dialog to select the filename. `SaveFile` doesn't
show the UI (`false` by default) if the sprite has an associated
file. `SaveFileAs` and `SaveFileCopyAs` will show the UI by
default.
* `ui`: Shows the dialog to select the filename. Defaults to `true`. When using `SaveFile`, if the sprite already has an associated file, the ui will not show.
* `recent`: Only available since v1.3.7, it adds the file to the list
of recent files. By default it depends if the dialog to select the
filename is displayed (depends on the value of the `ui` parameter).
* `filename`: The filename where to save the sprite. The default
values is the
values is the sprite name (e.g "Sprite-0001"). When using `SaveFile`, this parameter should not be set (as Aseprite will throw an error).
* `filenameFormat`: Special value similar to [--filename-format](https://www.aseprite.org/docs/cli/#filename-format)
when we use [--save-as](https://www.aseprite.org/docs/cli/#save-as) from the [CLI](https://www.aseprite.org/docs/cli/)
* `tag`: A tag name. You can save only the range of frames specified by this tag.
Expand Down
19 changes: 18 additions & 1 deletion api/sprite.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,17 @@ Returns the id of this sprite, as an integer.
local modified = sprite.isModified
```

Returns true if the sprite is modified compared to the latest saved
Returns `true` if the sprite is modified compared to the latest saved
state on disk.

## Sprite.isValid

```lua
local valid = sprite.isValid
```

Returns `true` if the sprite object is a valid object (the sprite is open).

## Sprite.colorSpace

```lua
Expand All @@ -147,6 +155,15 @@ local spec = sprite.spec

Returns the [specification](imagespec.md#imagespec) for image in this sprite.

## Sprite.useLayerUuids

```lua
local layeruuids = sprite.useLayerUuids
sprite.useLayerUuids = layeruuids
```

Gets or sets if the sprite should use [layer](layer.md#layer) UUIDs.

## Sprite.undoHistory.undoSteps

```lua
Expand Down
10 changes: 4 additions & 6 deletions api/websocket.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
local ws = WebSocket()
local ws = WebSocket{
url = string,
onreceive = function(message, data),
onreceive = function(message, data, error),
deflate = bool,
minreconnectwait=number,
maxreconnectwait=number
Expand All @@ -21,18 +21,16 @@ another program:
the server is running on the same machine, it might be faster to
turn it off.
* `onreceive` function will be called for every incoming message, and
when the connection is established and broken. Its two arguments are
the event type (see
[`WebSocketMessageType`](websocketmessagetype.md#websocketmessagetype))
and the received data (a string, can be empty).
when the connection is established and broken. Its three arguments are
the event type (see [`WebSocketMessageType`](websocketmessagetype.md#websocketmessagetype)), the received data (a string, can be empty), and the error message (string, can be empty).
* `minreconnectwait` and `maxreconnectwait` (in seconds) are optional
values that limit the waiting time to try a reconnection to the
server.

Example:

```lua
local function handleMessage(mt, data)
local function handleMessage(mt, data, error)
if mt == WebSocketMessageType.OPEN then
print("Connection open. Sending a message...")
ws:sendText("Hello!")
Expand Down
4 changes: 4 additions & 0 deletions api/websocketmessagetype.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ Connected to the server

Connection was closed for any reason, or broke

## WebSocketMessageType.ERROR

Connection encountered an error

## WebSocketMessageType.PING

See [the standard](https://datatracker.ietf.org/doc/html/rfc6455) about ping and pong.
Expand Down