mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-01 01:13:40 +00:00
parent
41baef2627
commit
b03dffb5cd
@ -1,5 +1,5 @@
|
|||||||
// Aseprite
|
// Aseprite
|
||||||
// Copyright (C) 2021-2023 Igara Studio S.A.
|
// Copyright (C) 2021-2024 Igara Studio S.A.
|
||||||
//
|
//
|
||||||
// This program is distributed under the terms of
|
// This program is distributed under the terms of
|
||||||
// the End-User License Agreement for Aseprite.
|
// the End-User License Agreement for Aseprite.
|
||||||
@ -34,10 +34,13 @@
|
|||||||
#include <map>
|
#include <map>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
// This event was disabled temporarily until we debug some cases.
|
||||||
|
//#define ENABLE_BEFORE_SITE_CHANGE_EVENT 1
|
||||||
|
|
||||||
// This event was disabled because it can be triggered in a background thread
|
// This event was disabled because it can be triggered in a background thread
|
||||||
// when any effect (e.g. like Replace Color or Convolution Matrix) is running.
|
// when any effect (e.g. like Replace Color or Convolution Matrix) is running.
|
||||||
// And running script code in a background is not supported.
|
// And running script code in a background is not supported.
|
||||||
//#define ENABLE_REMAP_TILESET_EVENT
|
//#define ENABLE_REMAP_TILESET_EVENT 1
|
||||||
|
|
||||||
namespace app {
|
namespace app {
|
||||||
namespace script {
|
namespace script {
|
||||||
@ -173,8 +176,10 @@ public:
|
|||||||
EventType eventType(const char* eventName) const override {
|
EventType eventType(const char* eventName) const override {
|
||||||
if (std::strcmp(eventName, "sitechange") == 0)
|
if (std::strcmp(eventName, "sitechange") == 0)
|
||||||
return SiteChange;
|
return SiteChange;
|
||||||
|
#if ENABLE_BEFORE_SITE_CHANGE_EVENT
|
||||||
else if (std::strcmp(eventName, "beforesitechange") == 0)
|
else if (std::strcmp(eventName, "beforesitechange") == 0)
|
||||||
return BeforeSiteChange;
|
return BeforeSiteChange;
|
||||||
|
#endif
|
||||||
else if (std::strcmp(eventName, "fgcolorchange") == 0)
|
else if (std::strcmp(eventName, "fgcolorchange") == 0)
|
||||||
return FgColorChange;
|
return FgColorChange;
|
||||||
else if (std::strcmp(eventName, "bgcolorchange") == 0)
|
else if (std::strcmp(eventName, "bgcolorchange") == 0)
|
||||||
|
@ -7,68 +7,49 @@ dofile('./test_utils.lua')
|
|||||||
|
|
||||||
-- Test app.events
|
-- Test app.events
|
||||||
do
|
do
|
||||||
local bc = 0
|
|
||||||
local c = 0
|
local c = 0
|
||||||
local beforeListener = app.events:on('beforesitechange',
|
|
||||||
function() bc = bc + 1 end)
|
|
||||||
local listener = app.events:on('sitechange',
|
local listener = app.events:on('sitechange',
|
||||||
function() c = c + 1 end)
|
function() c = c + 1 end)
|
||||||
|
|
||||||
assert(bc == 0)
|
|
||||||
assert(c == 0)
|
assert(c == 0)
|
||||||
local a = Sprite(32, 32)
|
local a = Sprite(32, 32)
|
||||||
expect_eq(a, app.activeSprite)
|
expect_eq(a, app.activeSprite)
|
||||||
expect_eq(1, bc)
|
|
||||||
expect_eq(1, c)
|
expect_eq(1, c)
|
||||||
|
|
||||||
local b = Sprite(32, 32)
|
local b = Sprite(32, 32)
|
||||||
expect_eq(b, app.activeSprite)
|
expect_eq(b, app.activeSprite)
|
||||||
expect_eq(2, bc)
|
|
||||||
expect_eq(2, c)
|
expect_eq(2, c)
|
||||||
|
|
||||||
app.activeSprite = a
|
app.activeSprite = a
|
||||||
expect_eq(3, bc)
|
|
||||||
expect_eq(3, c)
|
expect_eq(3, c)
|
||||||
|
|
||||||
app.events:off(listener)
|
app.events:off(listener)
|
||||||
app.events:off(beforeListener)
|
|
||||||
|
|
||||||
app.activeSprite = b
|
app.activeSprite = b
|
||||||
expect_eq(3, bc)
|
|
||||||
expect_eq(3, c)
|
expect_eq(3, c)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Alternate version of the events test to ensure proper observer disconnection
|
-- Alternate version of the events test to ensure proper observer disconnection
|
||||||
do
|
do
|
||||||
local bc = 0
|
|
||||||
local c = 0
|
local c = 0
|
||||||
local beforeListener = app.events:on('beforesitechange',
|
|
||||||
function() bc = bc + 1 end)
|
|
||||||
local listener = app.events:on('sitechange',
|
local listener = app.events:on('sitechange',
|
||||||
function() c = c + 1 end)
|
function() c = c + 1 end)
|
||||||
|
|
||||||
assert(bc == 0)
|
|
||||||
assert(c == 0)
|
assert(c == 0)
|
||||||
local a = Sprite(32, 32)
|
local a = Sprite(32, 32)
|
||||||
expect_eq(a, app.activeSprite)
|
expect_eq(a, app.activeSprite)
|
||||||
expect_eq(1, bc)
|
|
||||||
expect_eq(1, c)
|
expect_eq(1, c)
|
||||||
|
|
||||||
app.events:off(beforeListener)
|
|
||||||
|
|
||||||
local b = Sprite(32, 32)
|
local b = Sprite(32, 32)
|
||||||
expect_eq(b, app.activeSprite)
|
expect_eq(b, app.activeSprite)
|
||||||
expect_eq(1, bc)
|
|
||||||
expect_eq(2, c)
|
expect_eq(2, c)
|
||||||
|
|
||||||
app.activeSprite = a
|
app.activeSprite = a
|
||||||
expect_eq(1, bc)
|
|
||||||
expect_eq(3, c)
|
expect_eq(3, c)
|
||||||
|
|
||||||
app.events:off(listener)
|
app.events:off(listener)
|
||||||
|
|
||||||
app.activeSprite = b
|
app.activeSprite = b
|
||||||
expect_eq(1, bc)
|
|
||||||
expect_eq(3, c)
|
expect_eq(3, c)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user