[gimp] app: fix the tile pyramid invalidation bug
- From: Massimo Valentini <mvalentini src gnome org>
- To: commits-list gnome org
- Cc: 
- Subject: [gimp] app: fix the tile pyramid invalidation bug
- Date: Sat, 10 Aug 2013 14:28:21 +0000 (UTC)
commit 40f41055b90d1db0fc71ea668a27fae86a9ad0b2
Author: Massimo Valentini <mvalentini src gnome org>
Date:   Sat Aug 10 16:22:27 2013 +0200
    app: fix the tile pyramid invalidation bug
    
    when toggling the visibility of a single layer image with
    alpha channel, zoomed at 50%, the projection wasn't
    properly redrawn. It seems there's a GEGL bug exposed
    by normal layer mode operation fast path.
 app/core/gimpprojection.c |   15 ++++++---------
 1 files changed, 6 insertions(+), 9 deletions(-)
---
diff --git a/app/core/gimpprojection.c b/app/core/gimpprojection.c
index b6bec74..e226445 100644
--- a/app/core/gimpprojection.c
+++ b/app/core/gimpprojection.c
@@ -695,22 +695,19 @@ gimp_projection_paint_area (GimpProjection *proj,
   x2 = CLAMP (x + w, 0, width);
   y2 = CLAMP (y + h, 0, height);
 
+  if (proj->validate_handler)
+    gimp_tile_handler_projection_invalidate (proj->validate_handler,
+                                             x, y, width, height);
   if (now)
     {
       GeglNode *graph = gimp_projectable_get_graph (proj->projectable);
 
-      if (proj->validate_handler)
-        gimp_tile_handler_projection_undo_invalidate (proj->validate_handler,
-                                                      x1, y1, x2 - x1, y2 - y1);
-
       gegl_node_blit_buffer (graph, proj->buffer,
                              GEGL_RECTANGLE (x1, y1, x2 - x1, y2 - y1));
-    }
-  else
-    {
+
       if (proj->validate_handler)
-        gimp_tile_handler_projection_invalidate (proj->validate_handler,
-                                                 x1, y1, x2 - x1, y2 - y1);
+        gimp_tile_handler_projection_undo_invalidate (proj->validate_handler,
+                                                      x1, y1, x2 - x1, y2 - y1);
     }
 
   /*  add the projectable's offsets because the list of update areas
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]