[gimp] pdb: fail layer-remove-mask if applying a mask to a group layer
- From: N/A <ell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] pdb: fail layer-remove-mask if applying a mask to a group layer
- Date: Mon, 5 Feb 2018 20:16:44 +0000 (UTC)
commit 9befb8594ed028c27083a2204d6ea6aad2d15569
Author: Ell <ell_se yahoo com>
Date: Mon Feb 5 15:13:41 2018 -0500
pdb: fail layer-remove-mask if applying a mask to a group layer
... which is not supported.
app/core/gimplayer.c | 8 ++++++--
app/pdb/layer-cmds.c | 4 +++-
pdb/groups/layer.pdb | 4 +++-
3 files changed, 12 insertions(+), 4 deletions(-)
---
diff --git a/app/core/gimplayer.c b/app/core/gimplayer.c
index ed971be..a4954d6 100644
--- a/app/core/gimplayer.c
+++ b/app/core/gimplayer.c
@@ -1965,9 +1965,13 @@ gimp_layer_apply_mask (GimpLayer *layer,
if (! mask)
return;
+ /* APPLY can not be done to group layers */
+ g_return_if_fail (! gimp_viewable_get_children (GIMP_VIEWABLE (layer)) ||
+ mode == GIMP_MASK_DISCARD);
+
/* APPLY can only be done to layers with an alpha channel */
- if (! gimp_drawable_has_alpha (GIMP_DRAWABLE (layer)))
- g_return_if_fail (mode == GIMP_MASK_DISCARD || push_undo == TRUE);
+ g_return_if_fail (gimp_drawable_has_alpha (GIMP_DRAWABLE (layer)) ||
+ mode == GIMP_MASK_DISCARD || push_undo == TRUE);
item = GIMP_ITEM (layer);
image = gimp_item_get_image (item);
diff --git a/app/pdb/layer-cmds.c b/app/pdb/layer-cmds.c
index ddfb03b..12e4fa6 100644
--- a/app/pdb/layer-cmds.c
+++ b/app/pdb/layer-cmds.c
@@ -770,7 +770,9 @@ layer_remove_mask_invoker (GimpProcedure *procedure,
modify |= GIMP_PDB_ITEM_CONTENT;
if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), NULL, modify, error) &&
- gimp_layer_get_mask (layer))
+ gimp_layer_get_mask (layer) &&
+ (! gimp_viewable_get_children (GIMP_VIEWABLE (layer)) ||
+ mode == GIMP_MASK_DISCARD))
gimp_layer_apply_mask (layer, mode, TRUE);
else
success = FALSE;
diff --git a/pdb/groups/layer.pdb b/pdb/groups/layer.pdb
index 915c20e..e1edf29 100644
--- a/pdb/groups/layer.pdb
+++ b/pdb/groups/layer.pdb
@@ -423,7 +423,9 @@ HELP
modify |= GIMP_PDB_ITEM_CONTENT;
if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), NULL, modify, error) &&
- gimp_layer_get_mask (layer))
+ gimp_layer_get_mask (layer) &&
+ (! gimp_viewable_get_children (GIMP_VIEWABLE (layer)) ||
+ mode == GIMP_MASK_DISCARD))
gimp_layer_apply_mask (layer, mode, TRUE);
else
success = FALSE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]