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

Commit 19e34db0 authored by Chavi Weingarten's avatar Chavi Weingarten Committed by Automerger Merge Worker
Browse files

Merge "Add isClone to WindowInfo" into tm-dev am: b3907ccd

parents b016cb44 b3907ccd
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ bool WindowInfo::operator==(const WindowInfo& info) const {
            info.inputConfig == inputConfig && info.displayId == displayId &&
            info.replaceTouchableRegionWithCrop == replaceTouchableRegionWithCrop &&
            info.applicationInfo == applicationInfo && info.layoutParamsType == layoutParamsType &&
            info.layoutParamsFlags == layoutParamsFlags;
            info.layoutParamsFlags == layoutParamsFlags && info.isClone == isClone;
}

status_t WindowInfo::writeToParcel(android::Parcel* parcel) const {
@@ -124,7 +124,8 @@ status_t WindowInfo::writeToParcel(android::Parcel* parcel) const {
        parcel->write(touchableRegion) ?:
        parcel->writeBool(replaceTouchableRegionWithCrop) ?:
        parcel->writeStrongBinder(touchableRegionCropHandle.promote()) ?:
        parcel->writeStrongBinder(windowToken);
        parcel->writeStrongBinder(windowToken) ?:
        parcel->writeBool(isClone);
    // clang-format on
    return status;
}
@@ -175,7 +176,8 @@ status_t WindowInfo::readFromParcel(const android::Parcel* parcel) {
        parcel->read(touchableRegion) ?:
        parcel->readBool(&replaceTouchableRegionWithCrop) ?:
        parcel->readNullableStrongBinder(&touchableRegionCropHandleSp) ?:
        parcel->readNullableStrongBinder(&windowToken);
        parcel->readNullableStrongBinder(&windowToken) ?:
        parcel->readBool(&isClone);
    // clang-format on

    if (status != OK) {
+2 −0
Original line number Diff line number Diff line
@@ -236,6 +236,8 @@ struct WindowInfo : public Parcelable {

    void setInputConfig(ftl::Flags<InputConfig> config, bool value);

    bool isClone = false;

    void addTouchableRegion(const Rect& region);

    bool touchableRegionContainsPoint(int32_t x, int32_t y) const;
+2 −0
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ TEST(WindowInfo, Parcelling) {
    i.applicationInfo.name = "ApplicationFooBar";
    i.applicationInfo.token = new BBinder();
    i.applicationInfo.dispatchingTimeoutMillis = 0x12345678ABCD;
    i.isClone = true;

    Parcel p;
    i.writeToParcel(&p);
@@ -101,6 +102,7 @@ TEST(WindowInfo, Parcelling) {
    ASSERT_EQ(i.replaceTouchableRegionWithCrop, i2.replaceTouchableRegionWithCrop);
    ASSERT_EQ(i.touchableRegionCropHandle, i2.touchableRegionCropHandle);
    ASSERT_EQ(i.applicationInfo, i2.applicationInfo);
    ASSERT_EQ(i.isClone, i2.isClone);
}

TEST(InputApplicationInfo, Parcelling) {
+1 −0
Original line number Diff line number Diff line
@@ -2391,6 +2391,7 @@ WindowInfo Layer::fillInputInfo(const ui::Transform& displayTransform, bool disp
    // If the layer is a clone, we need to crop the input region to cloned root to prevent
    // touches from going outside the cloned area.
    if (isClone()) {
        info.isClone = true;
        if (const sp<Layer> clonedRoot = getClonedRoot()) {
            const Rect rect = displayTransform.transform(Rect{clonedRoot->mScreenBounds});
            info.touchableRegion = info.touchableRegion.intersect(rect);