diff --git a/src/scratch/sprite.cpp b/src/scratch/sprite.cpp index 02531598..ec648076 100644 --- a/src/scratch/sprite.cpp +++ b/src/scratch/sprite.cpp @@ -345,7 +345,7 @@ void Sprite::setLayerOrder(int newLayerOrder) Rect Sprite::boundingRect() const { if (!impl->iface) - return Rect(); + return Rect(impl->x, impl->y, impl->x, impl->y); return impl->iface->boundingRect(); } diff --git a/test/scratch_classes/sprite_test.cpp b/test/scratch_classes/sprite_test.cpp index 34298296..2309359c 100644 --- a/test/scratch_classes/sprite_test.cpp +++ b/test/scratch_classes/sprite_test.cpp @@ -590,6 +590,18 @@ TEST(SpriteTest, KeepInFence) ASSERT_EQ(std::round(fencedY * 100) / 100, 150.9); } +TEST(SpriteTest, DefaultBoundingRect) +{ + Sprite sprite; + sprite.setX(65.5); + sprite.setY(-45.01); + Rect rect = sprite.boundingRect(); + ASSERT_EQ(rect.left(), 65.5); + ASSERT_EQ(rect.top(), -45.01); + ASSERT_EQ(rect.right(), 65.5); + ASSERT_EQ(rect.bottom(), -45.01); +} + TEST(SpriteTest, GraphicsEffects) { Sprite sprite;