mirror of https://github.com/GNOME/gimp.git
core: Update layer effect masks during conversion
We weren't updating the precision of layer effect masks when converting the layer's precision. This patch updated with the format from gimp_image_get_mask_format (). Note that in the future, this code should be moved to gimp_drawable_real_convert_type () once that function is used in all the child classes of GimpDrawable.
This commit is contained in:
parent
5610ff3d0d
commit
fc7c3d0666
|
@ -1379,6 +1379,38 @@ gimp_drawable_convert_type (GimpDrawable *drawable,
|
||||||
push_undo,
|
push_undo,
|
||||||
progress);
|
progress);
|
||||||
|
|
||||||
|
/* Update the masks of any filters */
|
||||||
|
/* TODO: Move to gimp_drawable_real_convert_type () once it's updated
|
||||||
|
* to run for all GimpDrawable child classes */
|
||||||
|
if (gimp_drawable_has_filters (drawable))
|
||||||
|
{
|
||||||
|
GList *filter_list;
|
||||||
|
GimpContainer *filters = gimp_drawable_get_filters (drawable);
|
||||||
|
|
||||||
|
for (filter_list = GIMP_LIST (filters)->queue->tail;
|
||||||
|
filter_list;
|
||||||
|
filter_list = g_list_previous (filter_list))
|
||||||
|
{
|
||||||
|
if (GIMP_IS_DRAWABLE_FILTER (filter_list->data))
|
||||||
|
{
|
||||||
|
GimpDrawableFilter *filter = filter_list->data;
|
||||||
|
GimpChannel *mask;
|
||||||
|
const Babl *mask_format;
|
||||||
|
|
||||||
|
mask = gimp_drawable_filter_get_mask (filter);
|
||||||
|
mask_format = gimp_image_get_mask_format (dest_image);
|
||||||
|
|
||||||
|
gimp_drawable_convert_type (GIMP_DRAWABLE (mask), dest_image,
|
||||||
|
GIMP_GRAY,
|
||||||
|
gimp_babl_format_get_precision (mask_format),
|
||||||
|
FALSE,
|
||||||
|
NULL, NULL,
|
||||||
|
layer_dither_type, mask_dither_type,
|
||||||
|
push_undo, progress);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (progress)
|
if (progress)
|
||||||
gimp_progress_set_value (progress, 1.0);
|
gimp_progress_set_value (progress, 1.0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue