[gimp] Disable layer masks on group layers for the time being



commit df9e9e260990f827b40f9be05114897c571749a2
Author: Michael Natterer <mitch gimp org>
Date:   Sat Sep 5 15:37:48 2009 +0200

    Disable layer masks on group layers for the time being
    
    Will enable it again when I fixed it properly, it's clearly a
    non-trivial problem that needs some thinking. Disabled for now because
    it causes crashes.

 app/actions/layers-actions.c |    2 +-
 app/pdb/image-cmds.c         |    3 ++-
 app/pdb/layer-cmds.c         |    3 ++-
 tools/pdbgen/pdb/image.pdb   |    3 ++-
 tools/pdbgen/pdb/layer.pdb   |    3 ++-
 5 files changed, 9 insertions(+), 5 deletions(-)
---
diff --git a/app/actions/layers-actions.c b/app/actions/layers-actions.c
index c54856c..34683ad 100644
--- a/app/actions/layers-actions.c
+++ b/app/actions/layers-actions.c
@@ -615,7 +615,7 @@ layers_actions_update (GimpActionGroup *group,
   SET_SENSITIVE ("layers-lock-alpha", can_lock_alpha);
   SET_ACTIVE    ("layers-lock-alpha", lock_alpha);
 
-  SET_SENSITIVE ("layers-mask-add",    layer    && !fs && !ac && !mask);
+  SET_SENSITIVE ("layers-mask-add",    layer    && !fs && !ac && !mask && !children);
   SET_SENSITIVE ("layers-mask-apply",  writable && !fs && !ac &&  mask && !children);
   SET_SENSITIVE ("layers-mask-delete", layer    && !fs && !ac &&  mask);
 
diff --git a/app/pdb/image-cmds.c b/app/pdb/image-cmds.c
index 05f153f..0c581d8 100644
--- a/app/pdb/image-cmds.c
+++ b/app/pdb/image-cmds.c
@@ -1548,7 +1548,8 @@ image_add_layer_mask_invoker (GimpProcedure      *procedure,
 
   if (success)
     {
-      if (gimp_pdb_item_is_floating (GIMP_ITEM (mask), image, error))
+      if (gimp_pdb_item_is_floating (GIMP_ITEM (mask), image, error) &&
+          gimp_pdb_item_is_not_group (GIMP_ITEM (layer), error))
         success = (gimp_layer_add_mask (layer, mask, TRUE, error) == mask);
       else
         success = FALSE;
diff --git a/app/pdb/layer-cmds.c b/app/pdb/layer-cmds.c
index fc769fb..3254db6 100644
--- a/app/pdb/layer-cmds.c
+++ b/app/pdb/layer-cmds.c
@@ -618,7 +618,8 @@ layer_add_mask_invoker (GimpProcedure      *procedure,
     {
       if (gimp_pdb_item_is_floating (GIMP_ITEM (mask),
                                      gimp_item_get_image (GIMP_ITEM (layer)),
-                                     error))
+                                     error) &&
+          gimp_pdb_item_is_not_group (GIMP_ITEM (layer), error))
         success = (gimp_layer_add_mask (layer, mask, TRUE, error) == mask);
       else
         success = FALSE;
diff --git a/tools/pdbgen/pdb/image.pdb b/tools/pdbgen/pdb/image.pdb
index 74c5d85..f1127ec 100644
--- a/tools/pdbgen/pdb/image.pdb
+++ b/tools/pdbgen/pdb/image.pdb
@@ -1077,7 +1077,8 @@ sub image_add_layer_mask {
     %invoke = (
 	code => <<'CODE'
 {
-  if (gimp_pdb_item_is_floating (GIMP_ITEM (mask), image, error))
+  if (gimp_pdb_item_is_floating (GIMP_ITEM (mask), image, error) &&
+      gimp_pdb_item_is_not_group (GIMP_ITEM (layer), error))
     success = (gimp_layer_add_mask (layer, mask, TRUE, error) == mask);
   else
     success = FALSE;
diff --git a/tools/pdbgen/pdb/layer.pdb b/tools/pdbgen/pdb/layer.pdb
index e587511..f01aa28 100644
--- a/tools/pdbgen/pdb/layer.pdb
+++ b/tools/pdbgen/pdb/layer.pdb
@@ -277,7 +277,8 @@ HELP
 {
   if (gimp_pdb_item_is_floating (GIMP_ITEM (mask),
                                  gimp_item_get_image (GIMP_ITEM (layer)),
-                                 error))
+                                 error) &&
+      gimp_pdb_item_is_not_group (GIMP_ITEM (layer), error))
     success = (gimp_layer_add_mask (layer, mask, TRUE, error) == mask);
   else
     success = FALSE;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]