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.
This commit is contained in:
Ell 2019-06-10 03:51:14 -04:00
parent 3e5cbb03d9
commit 4a20a75dc3
1 changed files with 10 additions and 0 deletions

View File

@ -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;