[gimp] Issue #3484 - While moving a nested layer group, some area isn't updated



commit 4a20a75dc32cf47a9aaa85bbd52f145816467c2a
Author: Ell <ell_se yahoo com>
Date:   Mon Jun 10 03:51:14 2019 -0400

    Issue #3484 - While moving a nested layer group, some area isn't updated
    
    In gimp_group_layer_translate(), when translating a nested group
    layer, call gimp_drawable_update_all() to update the child-layers'
    original area *before* updating the group's offset, at which point
    the group parent's size is updated, causing subsequent area-updates
    during translation to be clipped to the parent's new bounds,
    preventing the original areas from being properly cleared.

 app/core/gimpgrouplayer.c | 10 ++++++++++
 1 file changed, 10 insertions(+)
---
diff --git a/app/core/gimpgrouplayer.c b/app/core/gimpgrouplayer.c
index 347496c350..7468f540ba 100644
--- a/app/core/gimpgrouplayer.c
+++ b/app/core/gimpgrouplayer.c
@@ -790,6 +790,16 @@ gimp_group_layer_translate (GimpLayer *layer,
   /*  redirect stack updates to the drawable, rather than to the projection  */
   private->direct_update++;
 
+  /*  if this is a nested group layer, we need to update the child-layers'
+   *  original area *before* updating the group's offset.  once we update the
+   *  group's offset, our parent's size will also be updated, and the
+   *  subsequent area-updates of the child layers during translation will be
+   *  clipped to the updated parent bounds, potentially failing to update their
+   *  original area.  see issue #3484.
+   */
+  if (gimp_viewable_get_depth (GIMP_VIEWABLE (group)) > 0)
+    gimp_drawable_update_all (GIMP_DRAWABLE (group));
+
   gimp_item_get_offset (GIMP_ITEM (group), &x, &y);
 
   x += offset_x;


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