wayland: Property propagate modifier SurfaceState fields

Currently, committed fields are contiguously accumulated. With this, it
will be possible to see what fields have been committed when the
committed() signal is emitted.
This commit is contained in:
Vlad Zahorodnii 2022-05-15 20:51:15 +03:00
parent 5fbdd0decc
commit a101bc3628

View file

@ -497,59 +497,70 @@ QRectF SurfaceInterfacePrivate::computeBufferSourceBox() const
void SurfaceState::mergeInto(SurfaceState *target)
{
if (bufferIsSet) {
target->bufferIsSet = bufferIsSet;
if (target->bufferIsSet) {
target->buffer = buffer;
target->offset = offset;
target->damage = damage;
target->bufferDamage = bufferDamage;
target->bufferIsSet = bufferIsSet;
}
if (viewport.sourceGeometryIsSet) {
target->viewport.sourceGeometryIsSet = viewport.sourceGeometryIsSet;
if (target->viewport.sourceGeometryIsSet) {
target->viewport.sourceGeometry = viewport.sourceGeometry;
target->viewport.sourceGeometryIsSet = true;
}
if (viewport.destinationSizeIsSet) {
target->viewport.destinationSizeIsSet = viewport.destinationSizeIsSet;
if (target->viewport.destinationSizeIsSet) {
target->viewport.destinationSize = viewport.destinationSize;
target->viewport.destinationSizeIsSet = true;
}
if (childrenChanged) {
target->childrenChanged = childrenChanged;
if (target->childrenChanged) {
target->below = below;
target->above = above;
target->childrenChanged = true;
}
wl_list_insert_list(&target->frameCallbacks, &frameCallbacks);
if (shadowIsSet) {
target->shadowIsSet = shadowIsSet;
if (target->shadowIsSet) {
target->shadow = shadow;
target->shadowIsSet = true;
}
if (blurIsSet) {
target->blurIsSet = blurIsSet;
if (target->blurIsSet) {
target->blur = blur;
target->blurIsSet = true;
}
if (contrastIsSet) {
target->contrastIsSet = contrastIsSet;
if (target->contrastIsSet) {
target->contrast = contrast;
target->contrastIsSet = true;
}
if (slideIsSet) {
target->slideIsSet = slideIsSet;
if (target->slideIsSet) {
target->slide = slide;
target->slideIsSet = true;
}
if (inputIsSet) {
target->inputIsSet = inputIsSet;
if (target->inputIsSet) {
target->input = input;
target->inputIsSet = true;
}
if (opaqueIsSet) {
target->opaqueIsSet = opaqueIsSet;
if (target->opaqueIsSet) {
target->opaque = opaque;
target->opaqueIsSet = true;
}
if (bufferScaleIsSet) {
target->bufferScaleIsSet = bufferScaleIsSet;
if (target->bufferScaleIsSet) {
target->bufferScale = bufferScale;
target->bufferScaleIsSet = true;
}
if (bufferTransformIsSet) {
target->bufferTransformIsSet = bufferTransformIsSet;
if (target->bufferTransformIsSet) {
target->bufferTransform = bufferTransform;
target->bufferTransformIsSet = true;
}
if (contentTypeIsSet) {
target->contentType = contentType;