Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f1ece6cb authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "SurfaceFlinger: Ensure reparent triggers visible region calculation."

parents 84a7e453 7f2ed8bb
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -1078,13 +1078,18 @@ uint32_t Layer::doTransaction(uint32_t flags) {
    ATRACE_CALL();

    if (mLayerDetached) {
        return 0;
        return flags;
    }

    if (mChildrenChanged) {
        flags |= eVisibleRegion;
        mChildrenChanged = false;
    }

    pushPendingState();
    State c = getCurrentState();
    if (!applyPendingStates(&c)) {
        return 0;
        return flags;
    }

    flags = doTransactionResize(flags, &c);
@@ -1106,11 +1111,6 @@ uint32_t Layer::doTransaction(uint32_t flags) {
        mNeedsFiltering = (!getActiveTransform(c).preserveRects() || type >= ui::Transform::SCALE);
    }

    if (mChildrenChanged) {
        flags |= eVisibleRegion;
        mChildrenChanged = false;
    }

    // If the layer is hidden, signal and clear out all local sync points so
    // that transactions for layers depending on this layer's frames becoming
    // visible are not blocked
@@ -1639,6 +1639,7 @@ size_t Layer::getChildrenCount() const {

void Layer::addChild(const sp<Layer>& layer) {
    mChildrenChanged = true;
    setTransactionFlags(eTransactionNeeded);

    mCurrentChildren.add(layer);
    layer->setParent(this);
@@ -1646,6 +1647,7 @@ void Layer::addChild(const sp<Layer>& layer) {

ssize_t Layer::removeChild(const sp<Layer>& layer) {
    mChildrenChanged = true;
    setTransactionFlags(eTransactionNeeded);

    layer->setParent(nullptr);
    return mCurrentChildren.remove(layer);