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

Commit a0104a32 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 am: 19e34db0

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


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


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


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


    bool isClone = false;

    void addTouchableRegion(const Rect& region);
    void addTouchableRegion(const Rect& region);


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


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


TEST(InputApplicationInfo, Parcelling) {
TEST(InputApplicationInfo, Parcelling) {
+1 −0
Original line number Original line 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
    // 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.
    // touches from going outside the cloned area.
    if (isClone()) {
    if (isClone()) {
        info.isClone = true;
        if (const sp<Layer> clonedRoot = getClonedRoot()) {
        if (const sp<Layer> clonedRoot = getClonedRoot()) {
            const Rect rect = displayTransform.transform(Rect{clonedRoot->mScreenBounds});
            const Rect rect = displayTransform.transform(Rect{clonedRoot->mScreenBounds});
            info.touchableRegion = info.touchableRegion.intersect(rect);
            info.touchableRegion = info.touchableRegion.intersect(rect);