app: fix layer group effective mode for different mask modes
In gimp_group_layer_get_effective_mode(), don't take the mask into
account if GimpLayer::apply-mask is FALSE.
(cherry picked from commit 8c81c6e153
)
This commit is contained in:
@ -1178,8 +1178,6 @@ gimp_group_layer_mask_changed (GimpLayer *layer)
|
|||||||
|
|
||||||
g_warn_if_fail (GET_PRIVATE (layer)->suspend_mask == 0);
|
g_warn_if_fail (GET_PRIVATE (layer)->suspend_mask == 0);
|
||||||
|
|
||||||
gimp_layer_update_effective_mode (layer);
|
|
||||||
|
|
||||||
/* if we've already computed a bounding box, update it now, since the mask
|
/* if we've already computed a bounding box, update it now, since the mask
|
||||||
* limits the bounding box to the group's size. if we haven't computed a
|
* limits the bounding box to the group's size. if we haven't computed a
|
||||||
* bounding box yet we can skip this, and, in fact, we have to, or else the
|
* bounding box yet we can skip this, and, in fact, we have to, or else the
|
||||||
@ -1222,7 +1220,8 @@ gimp_group_layer_get_effective_mode (GimpLayer *layer,
|
|||||||
*
|
*
|
||||||
* - and,
|
* - and,
|
||||||
*
|
*
|
||||||
* - the group's opacity is 100%, and it has no mask; or,
|
* - the group's opacity is 100%, and it has no mask (or the mask
|
||||||
|
* isn't applied); or,
|
||||||
*
|
*
|
||||||
* - the group's composite space equals the active children's
|
* - the group's composite space equals the active children's
|
||||||
* composite space.
|
* composite space.
|
||||||
@ -1297,9 +1296,14 @@ gimp_group_layer_get_effective_mode (GimpLayer *layer,
|
|||||||
|
|
||||||
if (reduce)
|
if (reduce)
|
||||||
{
|
{
|
||||||
|
gboolean has_mask;
|
||||||
|
|
||||||
|
has_mask = gimp_layer_get_mask (layer) &&
|
||||||
|
gimp_layer_get_apply_mask (layer);
|
||||||
|
|
||||||
if (first ||
|
if (first ||
|
||||||
(gimp_layer_get_opacity (layer) == GIMP_OPACITY_OPAQUE &&
|
(gimp_layer_get_opacity (layer) == GIMP_OPACITY_OPAQUE &&
|
||||||
! gimp_layer_get_mask (layer)) ||
|
! has_mask) ||
|
||||||
*composite_space == gimp_layer_get_real_composite_space (layer))
|
*composite_space == gimp_layer_get_real_composite_space (layer))
|
||||||
{
|
{
|
||||||
/* strength reduction succeeded! */
|
/* strength reduction succeeded! */
|
||||||
|
Reference in New Issue
Block a user