Skip to content

Commit

Permalink
Fix T61647031 - color comparison causing TextAttribute color to not u…
Browse files Browse the repository at this point in the history
…pdate ParagraphState

Summary:
As documented in T61647031, Text colors were sometimes not being updated because the ParagraphState was not always updating with a new AttributedString.

Turns out, it's because the equality comparator for Color had not been implemented, and so State was not being set in some cases.

The confusing part is that now color comparisons return true **more often** than before (if you're comparing two smart pointers of opaque data without a custom comparator, in theory I assume they're comparing pointer values and returning false way more often... but maybe my understanding is off). This distracted us for a while in finding an other ~fairly simple solution.

We should keep this in mind if we experience other, similar issues with text attributes not updating.

Changelog: [Internal] Fabric

Reviewed By: mdvacca

Differential Revision: D20300307

fbshipit-source-id: 13d86495f4c4ef8a0219fec66d39a49b4f7e6c2a
  • Loading branch information
JoshuaGross authored and facebook-github-bot committed Mar 6, 2020
1 parent 1beef1e commit 83c76c2
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions ReactCommon/fabric/graphics/platform/cxx/Color.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,14 @@ class SharedColor {
return color_;
}

bool operator==(const SharedColor &otherColor) const {
return color_ == otherColor.color_;
}

bool operator!=(const SharedColor &otherColor) const {
return color_ != otherColor.color_;
}

operator bool() const {
return color_ != UndefinedColor;
}
Expand Down

0 comments on commit 83c76c2

Please sign in to comment.