TooltipTailPainter class

Paints the tail as part of the tooltip surface.

The tooltip's global position is read at paint time from positionKey (the tooltip's render object): by then layout is final, so the geometry always matches the actual placement — no snapshot, no canvas-matrix introspection (which would be polluted by the device pixel ratio).

The hole is read live from holeOf at paint time: the tooltip content is cached across movement frames (see overlay_engine), so a painted-with-stale-hole tail would keep pointing at the target's old position while the scrim/tooltip follow it. Repainting is driven by the tooltip's own repaint on movement (layout offset change → paint) — the painter then reads both the current tooltip position and the current hole.

Inheritance

Constructors

TooltipTailPainter({required GlobalKey<State<StatefulWidget>> positionKey, required Rect holeOf(), required Color color, double tailLength = _kTailLength, double tailWidth = _kTailWidth})

Properties

color Color
Filled with the tooltip's background color — the tail looks like part of the same surface.
final
hashCode int
The hash code for this object.
no setterinherited
holeOf Rect Function()
The target (scrim hole) rect in global overlay coordinates, resolved at paint time (the hole moves with the target on scroll).
final
positionKey GlobalKey<State<StatefulWidget>>
Key of the tooltip's render object (the painter's child subtree) — the source of the tooltip's global position.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
semanticsBuilder SemanticsBuilderCallback?
Returns a function that builds semantic information for the picture drawn by this painter.
no setterinherited
tailLength double
final
tailWidth double
final

Methods

addListener(VoidCallback listener) → void
Register a closure to be notified when it is time to repaint.
inherited
hitTest(Offset position) bool?
Called whenever a hit test is being performed on an object that is using this custom paint delegate.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
paint(Canvas canvas, Size size) → void
Called whenever the object needs to paint. The given Canvas has its coordinate space configured such that the origin is at the top left of the box. The area of the box is the size of the size argument.
override
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that the object notifies when it is time to repaint.
inherited
shouldRebuildSemantics(covariant CustomPainter oldDelegate) bool
Called whenever a new instance of the custom painter delegate class is provided to the RenderCustomPaint object, or any time that a new CustomPaint object is created with a new instance of the custom painter delegate class (which amounts to the same thing, because the latter is implemented in terms of the former).
inherited
shouldRepaint(covariant TooltipTailPainter oldDelegate) bool
Called whenever a new instance of the custom painter delegate class is provided to the RenderCustomPaint object, or any time that a new CustomPaint object is created with a new instance of the custom painter delegate class (which amounts to the same thing, because the latter is implemented in terms of the former).
override
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited