diff --git a/src/app/color_utils.cpp b/src/app/color_utils.cpp index 6de7e2f75..1a8e9763e 100644 --- a/src/app/color_utils.cpp +++ b/src/app/color_utils.cpp @@ -135,9 +135,17 @@ int color_utils::color_for_image(const Color& color, int imgtype) int color_utils::color_for_layer(const Color& color, Layer* layer) { - int imgtype = layer->getSprite()->getImgType(); + int pixel_color; - return fixup_color_for_layer(layer, color_for_image(color, imgtype)); + if (color.getType() == Color::MaskType) { + pixel_color = layer->getSprite()->getTransparentColor(); + } + else { + int imgtype = layer->getSprite()->getImgType(); + pixel_color = color_for_image(color, imgtype); + } + + return fixup_color_for_layer(layer, pixel_color); } int color_utils::fixup_color_for_layer(Layer *layer, int color) diff --git a/src/util/expand_cel_canvas.cpp b/src/util/expand_cel_canvas.cpp index d27541dac..b9a22f124 100644 --- a/src/util/expand_cel_canvas.cpp +++ b/src/util/expand_cel_canvas.cpp @@ -56,8 +56,7 @@ ExpandCelCanvas::ExpandCelCanvas(Document* document, Sprite* sprite, Layer* laye if (m_cel == NULL) { // Create the image m_celImage = image_new(m_sprite->getImgType(), m_sprite->getWidth(), m_sprite->getHeight()); - image_clear(m_celImage, - m_celImage->mask_color); + image_clear(m_celImage, sprite->getTransparentColor()); // create the cel m_cel = new Cel(m_sprite->getCurrentFrame(), 0); @@ -89,7 +88,7 @@ ExpandCelCanvas::ExpandCelCanvas(Document* document, Sprite* sprite, Layer* laye m_srcImage = image_crop(m_celImage, x1-m_cel->getX(), y1-m_cel->getY(), x2-x1, y2-y1, - m_celImage->mask_color); + m_sprite->getTransparentColor()); m_dstImage = image_new_copy(m_srcImage);