Skip to main content

Module managers

Module managers 

Source
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 accesskit does not cover (iOS / Android). Gated with the same feature as a11y itself. 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 and scripts/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
VirtualView lifecycle management for layout

Structs§

NodeIdMap
The result of a DOM reconciliation, from the point of view of anyone holding NodeId-keyed state for a single DOM.

Traits§

NodeIdRemap
Implemented by EVERY manager (or cache) that keys state by NodeId.