mirror of
https://github.com/aseprite/aseprite.git
synced 2025-01-04 17:40:01 +00:00
Test when Sprite.events are created just when the sprite is being closed
As app 'sitechange' event is generated when we close a sprite, accessing Sprite.events on that event will re-create the app::script::SpriteEvents instance associated with the sprite.
This commit is contained in:
parent
a03ff2280a
commit
02a2f1f933
@ -109,3 +109,28 @@ do
|
||||
-- listener instead of doing nothing.
|
||||
expect_eq(2, i)
|
||||
end
|
||||
|
||||
-- Accessing Sprite.events when closing the same sprite will call
|
||||
-- push_sprite_events() creating a new app::script::SpriteEvents
|
||||
-- instance again even when we've just destroyed the old one (because
|
||||
-- we're just closing the sprite).
|
||||
do
|
||||
local s = Sprite(32, 32)
|
||||
function onSpriteChange()
|
||||
-- Do nothing
|
||||
end
|
||||
-- Here we access s.events for first time, creating the
|
||||
-- app::script::SpriteEvents for this sprite.
|
||||
s.events:on('change', onSpriteChange)
|
||||
function onSiteChange()
|
||||
-- Accessing s.events again on 'sitechange' when we're just
|
||||
-- closing the sprite, re-generating its SpriteEvents instance.
|
||||
-- We've to have special care of this case.
|
||||
s.events:off(onSpriteChange)
|
||||
end
|
||||
app.events:on('sitechange', onSiteChange)
|
||||
-- Closing the sprite will create a 'sitechange' event calling
|
||||
-- onSiteChange() function.
|
||||
s:close()
|
||||
app.events:off(onSiteChange)
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user