[gimp] Issue #4996 - Wrong propagate_mode parameter handling in plug-in-vpropagate



commit 362b828a0364cacc4779a8250fc91354936b8c29
Author: Ell <ell_se yahoo com>
Date:   Tue Apr 28 15:06:16 2020 +0300

    Issue #4996 - Wrong propagate_mode parameter handling in plug-in-vpropagate
    
    Fix plug-in-vpropagate compat procedure when propagate_mode == 3.

 app/pdb/plug-in-compat-cmds.c | 17 ++++++++++-------
 pdb/groups/plug_in_compat.pdb | 17 ++++++++++-------
 2 files changed, 20 insertions(+), 14 deletions(-)
---
diff --git a/app/pdb/plug-in-compat-cmds.c b/app/pdb/plug-in-compat-cmds.c
index 7a5155bb87..c03cb74576 100644
--- a/app/pdb/plug-in-compat-cmds.c
+++ b/app/pdb/plug-in-compat-cmds.c
@@ -4502,17 +4502,20 @@ plug_in_vpropagate_invoker (GimpProcedure         *procedure,
               break;
 
             case 3:
-              gegl_mode = propagate_mode;
-              /* fall thru */
-
             case 4:
             case 5:
-              gegl_mode = 4;
+              if (propagate_mode == 3 || propagate_mode == 4)
+                {
+                  gegl_mode = propagate_mode;
 
-              if (propagate_mode != 3)
-                gimp_context_get_foreground (context, &color);
+                  gimp_context_get_foreground (context, &color);
+                }
               else
-                gimp_context_get_background (context, &color);
+                {
+                  gegl_mode = 4;
+
+                  gimp_context_get_background (context, &color);
+                }
 
               gegl_color = gimp_gegl_color_new (&color, NULL);
               break;
diff --git a/pdb/groups/plug_in_compat.pdb b/pdb/groups/plug_in_compat.pdb
index d5a14c8b24..f5ae0a2766 100644
--- a/pdb/groups/plug_in_compat.pdb
+++ b/pdb/groups/plug_in_compat.pdb
@@ -4697,17 +4697,20 @@ HELP
           break;
 
         case 3:
-          gegl_mode = propagate_mode;
-          /* fall thru */
-
         case 4:
         case 5:
-          gegl_mode = 4;
+          if (propagate_mode == 3 || propagate_mode == 4)
+            {
+              gegl_mode = propagate_mode;
 
-          if (propagate_mode != 3)
-            gimp_context_get_foreground (context, &color);
+              gimp_context_get_foreground (context, &color);
+            }
           else
-            gimp_context_get_background (context, &color);
+            {
+              gegl_mode = 4;
+
+              gimp_context_get_background (context, &color);
+            }
 
           gegl_color = gimp_gegl_color_new (&color, NULL);
           break;


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