FramePresentationDamage class sealed
Damage data normalized for surface presenters.
Sealed for ONE invariant that flags could not hold: a full repaint always dirties every row. That pairing used to be restated by hand at every construction site, and this type is exported host SPI, so the fourth site was never going to be one of ours. PresentationFullRepaint has no rows to pass — the plan expands them — so the mismatch cannot be written.
What that does and does not protect. FramePresentationPlan.dirtyRows
drives the wire's dirty-row hint and semantic coverage, so a full repaint
declaring partial rows used to desync a peer mirror or throw out of
coverage. Which rows a DOM surface actually paints comes from
dirtyRowModels, which this type has no say over — though the variant does
reach the DOM indirectly, since FramePresentationPlan.fullRepaint gates
its scroll path.
The carve deliberately differs from the loop-level TuiFrameDamage it is
built from. There, dirtyBounds being absent MEANS "nothing changed", so
the variants discriminate on it. Here a bound is an optional hint that the
wire simply does not carry — a remote frame has real dirty rows and no
bounds — so bounds stay nullable INSIDE the changed variant and the rows
are the authority. Copying the upstream shape literally would have made
"changed, rows known, bounds unknown" inexpressible.
Properties
- dirtyBounds → CellRect?
-
A bound a diffing presenter may restrict itself to, when one is known.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited