MouseTracker class

Tracks the relationship between mouse devices and annotations, and triggers mouse events and cursor changes accordingly.

The MouseTracker tracks the relationship between mouse devices and MouseTrackerAnnotations, and when such relationship changes, triggers the following changes if applicable:

  • Dispatches mouse-related pointer events (pointer enter, hover, and exit).
  • Notifies changes of mouseIsConnected.
  • Changes mouse cursors.

An instance of MouseTracker is owned by the global singleton of RendererBinding.

This class is a ChangeNotifier that notifies its listeners if the value of mouseIsConnected changes.

See also:

  • BaseMouseTracker, which introduces more details about the timing of device updates.
Mixed in types


MouseTracker(PointerRouter router, MouseDetectorAnnotationFinder annotationFinder)
Creates a MouseTracker to keep track of mouse locations. [...]


annotationFinder MouseDetectorAnnotationFinder
Find annotations at a given offset in global logical coordinate space in visual order from front to back. [...]
final, inherited
hashCode int
The hash code for this object. [...]
read-only, inherited
hasListeners bool
Whether any listeners are currently registered. [...]
@protected, read-only, inherited
mouseIsConnected bool
Whether or not at least one mouse is connected and has produced events.
read-only, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited


addListener(VoidCallback listener) → void
Register a closure to be called when the object changes. [...]
debugDeviceActiveCursor(int device) MouseCursor
Returns the active mouse cursor of a device. [...]
@visibleForTesting, inherited
dispose() → void
Discards any resources used by the object. After this is called, the object is not in a usable state and should be discarded (calls to addListener and removeListener will throw after the object is disposed). [...]
handleDeviceUpdate(MouseTrackerUpdateDetails details) → void
A callback that is called on the update of a device. [...]
@protected, inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
notifyListeners() → void
Call all the registered listeners. [...]
@protected, @visibleForTesting, inherited
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes. [...]
schedulePostFrameCheck() → void
Mark all devices as dirty, and schedule a callback that is executed in the upcoming post-frame phase to check their updates. [...]
toString() String
Returns a string representation of this object.


operator ==(Object other) bool
The equality operator. [...]