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

Commit f4e02874 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
Merged-In: Ieb83373c9103f9847775eca5788358b567a05b24
parent 99b4619c
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -4828,6 +4828,16 @@ status_t SurfaceFlinger::captureScreen(const sp<IBinder>& display, sp<GraphicBuf
    const sp<const DisplayDevice> device(getDisplayDeviceLocked(display));
    if (CC_UNLIKELY(device == 0)) return BAD_VALUE;

    const Rect& dispScissor = device->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(device, sourceCrop, reqHeight, reqWidth, rotation);

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