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



commit 459a816786322496916c558d2dbbe362be7b72ae
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.
    
    (cherry picked from commit 362b828a0364cacc4779a8250fc91354936b8c29)

 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 d6e07beac8..93766ce372 100644
--- a/app/pdb/plug-in-compat-cmds.c
+++ b/app/pdb/plug-in-compat-cmds.c
@@ -4513,17 +4513,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);
               break;
diff --git a/pdb/groups/plug_in_compat.pdb b/pdb/groups/plug_in_compat.pdb
index bffe4b611b..184d80df2b 100644
--- a/pdb/groups/plug_in_compat.pdb
+++ b/pdb/groups/plug_in_compat.pdb
@@ -4654,17 +4654,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);
           break;


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