The implementation of layer groups is progressing very nicely and for
the most part they behave as one would expect, and operations upon
them behave as I would expect. However, there is one inconsistency
that I feel should be considered.
Layer groups tend to behave as a sub-image within an image --
operations on the individual layers are limited to the individual
layer, whereas operations upon the group layer affect each of the
layers in the group (by group layer, I mean the collapsible
pseudo-layer educed from the member layers of the group). I.e,
cropping, translation, and transformation on the group layer result
in each of the layers being cropped or transformed. Similarly,
deleting or duplicating the group layer results in the entire group
being deleted or duplicated. In these cases, an operation on a group
behave just as would the corresponding operation performed upon an
image.
This is all very intuitive and well implemented. However, to increase
the effectiveness of this relationship of group == sub-image, it
would be beneficial to have the boundaries of the group behave in a
manner analogous to that of the image's canvas size. And currently, it
does not.
When the boundaries of the group layer are modified, the result is
that each of the member layers are cropped to the new boundaries. This
is not what I would expect to happen. I should think that the group
layer's boundaries should act as a passe-partout, masking out regions
of the member layers which happen to lie outside it, and that in
manner similar to the behavior of the image canvas, that member layers
be permitted to extend beyond the group layer's boundaries. In other
words, resizing Layer Boundary Size of the group layer should not
crop the layer group, just as changing the canvas size of an image
does not crop the image.
In addition to the changing the behavior of Layer Boundary Size when
a group layer is active, I would propose a new button for the Layers
Dialog, one that substitutes for the Lock Alpha button when a group
layer is active. This button would permit auto-resizing of the
passe-partout to fit the group's member layers. Alternatively, the
passe-partout could be initially fixed to the size of the first added
member layer, requiring a Fit group canvas to layers or somesuch to
modify the size appropriately. Another option would be to create a
layermask for the group layer, but this would still require
addressing how the positioning and dimensions of the layermask is
presented to the user (eventually adding layermasks to group layers
would be a desirable enhancement for different reasons).
My apologies if there are already plans to address this and I am being
premature in presenting this issue, however, I feel it is quite
critical that the rendering of the content of layer groups can be
restricted to particular regions of the image canvas without requiring
that the content of their member layers be destroyed.
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer