Expand description
The pointer icon the platform should be drawing right now.
The shell resolves the hovered region’s PointerIcon on every pointer
move and records it here; the platform layer reads the pending change back
and applies it to the window it owns (winit’s Window::set_cursor on
desktop, the canvas’s CSS cursor on the web). The indirection exists
because neither side can call the other directly: cranpose-ui cannot reach
a window handle, and the platform backend is not on the stack when a
modifier declares its icon.
Reading is a poll rather than a callback because a windowing system wants the cursor set from its own event loop, holding the handles only that loop has: the platform asks for the change at the point where it can act on it.
The session is stored per AppContext,
like the clipboard and text-input sessions, so each window in a multi-window
app carries its own pointer icon.
Functions§
- current_
pointer_ icon - The pointer icon currently requested, whether or not the platform has applied it yet.
- refresh_
pointer_ icon - Offers the icon the session already holds to the platform again.
- set_
pointer_ icon - Requests
iconas the pointer’s appearance. - take_
pointer_ icon_ change - Takes the pointer icon change the platform has not applied yet, leaving nothing behind.