Expand description
Scroll, hover, clipboard, cursor, and focus managers. Manager types responsible for stateful input and UI concerns.
This module collects managers for accessibility, clipboard, drag-and-drop,
focus/cursor, gestures, hover, scroll state, selection, text editing,
text input, undo/redo, and virtual views. These managers are consumed
primarily by layout/src/window.rs and layout/src/event_determination.rs.
§NodeId staleness — read this before adding a manager
A NodeId is an INDEX into the current DOM arena, not a stable identity.
Every DOM rebuild (virtual-view re-invocation, window resize, route switch,
any regenerate_layout) renumbers them. Reconciliation
(azul_core::diff::reconcile_dom) tells us how: node_moves maps every
MATCHED old NodeId to its new one. An old NodeId that is absent from
that map was UNMOUNTED.
Any manager that keys state by NodeId and does not participate in that
remap ends up pointing at a live but wrong node — deleting a preceding
sibling shifts every following index down by one, so the state silently
re-attaches to a different element (no dangling id, no panic, no error).
Unmapped keys also leak forever.
The fix is structural: every node-keyed manager implements
[NodeIdRemap], and crate::window::LayoutWindow::remap_node_ids
(exhaustively destructured, so a NEW FIELD IS A COMPILE ERROR until it is
classified) drives all of them from one place.
Modules§
- a11y
- Accessibility Manager for integrating with
accesskit. - a11y_
snapshot - Platform-neutral a11y element list for the shells
accesskitdoes not cover (iOS / Android). Gated with the same feature asa11yitself. Platform-neutral accessibility snapshot. - biometric
- Biometric manager — cross-platform state for the biometric-auth
surface (
SUPER_PLAN_2§1 feature 4 + research/02). - changeset
- Text editing changeset system
- clipboard
- Clipboard Manager
- drag_
drop - Node drag-and-drop view types (
DragState/DragType). - file_
drop - File drag & drop management
- focus_
cursor - Focus and tab navigation management.
- gamepad
- Gamepad manager — cross-platform state for the controller surface
(
SUPER_PLAN_2§1 feature 6 + research/03). - geolocation
- Geolocation manager — cross-platform state for the GPS/location surface
(
SUPER_PLAN_2§1.5 + research/04 §3 + research/08 §6). - gesture
- Gesture and drag manager for multi-frame gestures and drag operations.
- gpu_
state - Centralized GPU state management.
- hover
- Hover state management for tracking mouse and touch hover history
- keyring
- Keyring manager — cross-platform state for the system-keyring surface
(
SUPER_PLAN_2§4 P4.2). - permission
- Permission manager — the cross-platform piece of the “permission-as-DOM”
architecture (
SUPER_PLAN_2.md§1.5 andscripts/research/08_permission_dom_nodes.md). - scroll_
into_ view - Scroll-into-view implementation
- scroll_
state - Pure scroll state management — the single source of truth for scroll offsets.
- selection
- Clipboard content types for copy/paste operations
- sensors
- Sensor manager — cross-platform state for the motion-sensor surface
(
SUPER_PLAN_2§1 feature 5 + research/03). - text_
edit - Unified text editing manager
- text_
input - Text Input Manager
- undo_
redo - Undo/Redo Manager for text editing operations
- virtual_
view VirtualViewlifecycle management for layout
Structs§
- Node
IdMap - The result of a DOM reconciliation, from the point of view of anyone holding
NodeId-keyed state for a single DOM.
Traits§
- Node
IdRemap - Implemented by EVERY manager (or cache) that keys state by
NodeId.