mirror of
https://github.com/aseprite/aseprite.git
synced 2025-02-28 16:11:35 +00:00
parent
41baef2627
commit
b03dffb5cd
@ -1,5 +1,5 @@
|
||||
// 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
|
||||
// the End-User License Agreement for Aseprite.
|
||||
@ -34,10 +34,13 @@
|
||||
#include <map>
|
||||
#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
|
||||
// when any effect (e.g. like Replace Color or Convolution Matrix) is running.
|
||||
// And running script code in a background is not supported.
|
||||
//#define ENABLE_REMAP_TILESET_EVENT
|
||||
//#define ENABLE_REMAP_TILESET_EVENT 1
|
||||
|
||||
namespace app {
|
||||
namespace script {
|
||||
@ -173,8 +176,10 @@ public:
|
||||
EventType eventType(const char* eventName) const override {
|
||||
if (std::strcmp(eventName, "sitechange") == 0)
|
||||
return SiteChange;
|
||||
#if ENABLE_BEFORE_SITE_CHANGE_EVENT
|
||||
else if (std::strcmp(eventName, "beforesitechange") == 0)
|
||||
return BeforeSiteChange;
|
||||
#endif
|
||||
else if (std::strcmp(eventName, "fgcolorchange") == 0)
|
||||
return FgColorChange;
|
||||
else if (std::strcmp(eventName, "bgcolorchange") == 0)
|
||||
|
@ -7,68 +7,49 @@ dofile('./test_utils.lua')
|
||||
|
||||
-- Test app.events
|
||||
do
|
||||
local bc = 0
|
||||
local c = 0
|
||||
local beforeListener = app.events:on('beforesitechange',
|
||||
function() bc = bc + 1 end)
|
||||
local listener = app.events:on('sitechange',
|
||||
function() c = c + 1 end)
|
||||
|
||||
assert(bc == 0)
|
||||
assert(c == 0)
|
||||
local a = Sprite(32, 32)
|
||||
expect_eq(a, app.activeSprite)
|
||||
expect_eq(1, bc)
|
||||
expect_eq(1, c)
|
||||
|
||||
local b = Sprite(32, 32)
|
||||
expect_eq(b, app.activeSprite)
|
||||
expect_eq(2, bc)
|
||||
expect_eq(2, c)
|
||||
|
||||
app.activeSprite = a
|
||||
expect_eq(3, bc)
|
||||
expect_eq(3, c)
|
||||
|
||||
app.events:off(listener)
|
||||
app.events:off(beforeListener)
|
||||
|
||||
app.activeSprite = b
|
||||
expect_eq(3, bc)
|
||||
expect_eq(3, c)
|
||||
end
|
||||
|
||||
-- Alternate version of the events test to ensure proper observer disconnection
|
||||
do
|
||||
local bc = 0
|
||||
local c = 0
|
||||
local beforeListener = app.events:on('beforesitechange',
|
||||
function() bc = bc + 1 end)
|
||||
local listener = app.events:on('sitechange',
|
||||
function() c = c + 1 end)
|
||||
|
||||
assert(bc == 0)
|
||||
assert(c == 0)
|
||||
local a = Sprite(32, 32)
|
||||
expect_eq(a, app.activeSprite)
|
||||
expect_eq(1, bc)
|
||||
expect_eq(1, c)
|
||||
|
||||
app.events:off(beforeListener)
|
||||
|
||||
local b = Sprite(32, 32)
|
||||
expect_eq(b, app.activeSprite)
|
||||
expect_eq(1, bc)
|
||||
expect_eq(2, c)
|
||||
|
||||
app.activeSprite = a
|
||||
expect_eq(1, bc)
|
||||
expect_eq(3, c)
|
||||
|
||||
app.events:off(listener)
|
||||
|
||||
app.activeSprite = b
|
||||
expect_eq(1, bc)
|
||||
expect_eq(3, c)
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user