[gimp/gimp-2-8] Bug 701594 - gimp-image-select-item does not recognize path transformations



commit 4b957cf404e0b9f636befd8cba4726d341852be2
Author: Michael Natterer <mitch gimp org>
Date:   Tue Jun 4 16:48:41 2013 +0200

    Bug 701594 - gimp-image-select-item does not recognize path transformations
    
    pdb: Need to gimp_vectors_freeze()/thaw() around stroke modifications
    so the vector's preview and the cached GimpBezierDesc are invalidated.
    (cherry picked from commit 64887fe06cb8558d24c92c218b759dce1183afaa)

 app/pdb/vectors-cmds.c       |   18 ++++++++++++++++++
 tools/pdbgen/pdb/vectors.pdb |   18 ++++++++++++++++++
 2 files changed, 36 insertions(+), 0 deletions(-)
---
diff --git a/app/pdb/vectors-cmds.c b/app/pdb/vectors-cmds.c
index a566da4..9c4dbff 100644
--- a/app/pdb/vectors-cmds.c
+++ b/app/pdb/vectors-cmds.c
@@ -359,7 +359,9 @@ vectors_stroke_close_invoker (GimpProcedure      *procedure,
                                               _("Close path stroke"),
                                               vectors);
 
+          gimp_vectors_freeze (vectors);
           gimp_stroke_close (stroke);
+          gimp_vectors_thaw (vectors);
         }
       else
         success = FALSE;
@@ -399,7 +401,9 @@ vectors_stroke_translate_invoker (GimpProcedure      *procedure,
                                               _("Translate path stroke"),
                                               vectors);
 
+          gimp_vectors_freeze (vectors);
           gimp_stroke_translate (stroke, off_x, off_y);
+          gimp_vectors_thaw (vectors);
         }
       else
         success = FALSE;
@@ -439,7 +443,9 @@ vectors_stroke_scale_invoker (GimpProcedure      *procedure,
                                               _("Scale path stroke"),
                                               vectors);
 
+          gimp_vectors_freeze (vectors);
           gimp_stroke_scale (stroke, scale_x, scale_y);
+          gimp_vectors_thaw (vectors);
         }
       else
         success = FALSE;
@@ -481,7 +487,9 @@ vectors_stroke_rotate_invoker (GimpProcedure      *procedure,
                                               _("Rotate path stroke"),
                                               vectors);
 
+          gimp_vectors_freeze (vectors);
           gimp_stroke_rotate (stroke, center_x, center_y, angle);
+          gimp_vectors_thaw (vectors);
         }
       else
         success = FALSE;
@@ -521,7 +529,9 @@ vectors_stroke_flip_invoker (GimpProcedure      *procedure,
                                               _("Flip path stroke"),
                                               vectors);
 
+          gimp_vectors_freeze (vectors);
           gimp_stroke_flip (stroke, flip_type, axis);
+          gimp_vectors_thaw (vectors);
         }
       else
         success = FALSE;
@@ -565,7 +575,9 @@ vectors_stroke_flip_free_invoker (GimpProcedure      *procedure,
                                               _("Flip path stroke"),
                                               vectors);
 
+          gimp_vectors_freeze (vectors);
           gimp_stroke_flip_free (stroke, x1, y1, x2, y2);
+          gimp_vectors_thaw (vectors);
         }
       else
         success = FALSE;
@@ -870,7 +882,9 @@ vectors_bezier_stroke_lineto_invoker (GimpProcedure      *procedure,
                                              _("Extend path stroke"),
                                              vectors);
 
+          gimp_vectors_freeze (vectors);
           gimp_bezier_stroke_lineto (stroke, &coord0);
+          gimp_vectors_thaw (vectors);
         }
       else
         success = FALSE;
@@ -923,7 +937,9 @@ vectors_bezier_stroke_conicto_invoker (GimpProcedure      *procedure,
                                              _("Extend path stroke"),
                                              vectors);
 
+          gimp_vectors_freeze (vectors);
           gimp_bezier_stroke_conicto (stroke, &coord0, &coord1);
+          gimp_vectors_thaw (vectors);
         }
       else
         success = FALSE;
@@ -984,7 +1000,9 @@ vectors_bezier_stroke_cubicto_invoker (GimpProcedure      *procedure,
                                              _("Extend path stroke"),
                                              vectors);
 
+          gimp_vectors_freeze (vectors);
           gimp_bezier_stroke_cubicto (stroke, &coord0, &coord1, &coord2);
+          gimp_vectors_thaw (vectors);
         }
       else
         success = FALSE;
diff --git a/tools/pdbgen/pdb/vectors.pdb b/tools/pdbgen/pdb/vectors.pdb
index f85a553..e2cc6bd 100644
--- a/tools/pdbgen/pdb/vectors.pdb
+++ b/tools/pdbgen/pdb/vectors.pdb
@@ -323,7 +323,9 @@ HELP
                                           _("Close path stroke"),
                                           vectors);
 
+      gimp_vectors_freeze (vectors);
       gimp_stroke_close (stroke);
+      gimp_vectors_thaw (vectors);
     }
   else
     success = FALSE;
@@ -365,7 +367,9 @@ HELP
                                           _("Translate path stroke"),
                                           vectors);
 
+      gimp_vectors_freeze (vectors);
       gimp_stroke_translate (stroke, off_x, off_y);
+      gimp_vectors_thaw (vectors);
     }
   else
     success = FALSE;
@@ -406,7 +410,9 @@ HELP
                                           _("Scale path stroke"),
                                           vectors);
 
+      gimp_vectors_freeze (vectors);
       gimp_stroke_scale (stroke, scale_x, scale_y);
+      gimp_vectors_thaw (vectors);
     }
   else
     success = FALSE;
@@ -448,7 +454,9 @@ HELP
                                           _("Rotate path stroke"),
                                           vectors);
 
+      gimp_vectors_freeze (vectors);
       gimp_stroke_rotate (stroke, center_x, center_y, angle);
+      gimp_vectors_thaw (vectors);
     }
   else
     success = FALSE;
@@ -489,7 +497,9 @@ HELP
                                           _("Flip path stroke"),
                                           vectors);
 
+      gimp_vectors_freeze (vectors);
       gimp_stroke_flip (stroke, flip_type, axis);
+      gimp_vectors_thaw (vectors);
     }
   else
     success = FALSE;
@@ -535,7 +545,9 @@ HELP
                                           _("Flip path stroke"),
                                           vectors);
 
+      gimp_vectors_freeze (vectors);
       gimp_stroke_flip_free (stroke, x1, y1, x2, y2);
+      gimp_vectors_thaw (vectors);
     }
   else
     success = FALSE;
@@ -846,7 +858,9 @@ HELP
                                          _("Extend path stroke"),
                                          vectors);
 
+      gimp_vectors_freeze (vectors);
       gimp_bezier_stroke_lineto (stroke, &coord0);
+      gimp_vectors_thaw (vectors);
     }
   else
     success = FALSE;
@@ -902,7 +916,9 @@ HELP
                                          _("Extend path stroke"),
                                          vectors);
 
+      gimp_vectors_freeze (vectors);
       gimp_bezier_stroke_conicto (stroke, &coord0, &coord1);
+      gimp_vectors_thaw (vectors);
     }
   else
     success = FALSE;
@@ -964,7 +980,9 @@ HELP
                                          _("Extend path stroke"),
                                          vectors);
 
+      gimp_vectors_freeze (vectors);
       gimp_bezier_stroke_cubicto (stroke, &coord0, &coord1, &coord2);
+      gimp_vectors_thaw (vectors);
     }
   else
     success = FALSE;


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