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

Commit 06a58e22 authored by Yiwei Zhang's avatar Yiwei Zhang
Browse files

Get screenshot to exclude black cutout

Bug: b/112869712
Test: long press power button to take screenshots && adb shell screencap
&& apps to take screenshots and check
Change-Id: Ieb83373c9103f9847775eca5788358b567a05b24
parent 7a4dcdf8
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -4824,6 +4824,16 @@ status_t SurfaceFlinger::captureScreen(const sp<IBinder>& displayToken,
    const auto display = getDisplayDeviceLocked(displayToken);
    if (!display) return BAD_VALUE;

    const Rect& dispScissor = display->getScissor();
    if (!dispScissor.isEmpty()) {
        sourceCrop.set(dispScissor);
        // adb shell screencap will default reqWidth and reqHeight to zeros.
        if (reqWidth == 0 || reqHeight == 0) {
            reqWidth = uint32_t(dispScissor.width());
            reqHeight = uint32_t(dispScissor.height());
        }
    }

    DisplayRenderArea renderArea(display, sourceCrop, reqHeight, reqWidth, rotation);

    auto traverseLayers = std::bind(std::mem_fn(&SurfaceFlinger::traverseLayersInDisplay), this,