mirror of
https://github.com/SpartanJ/eepp.git
synced 2026-10-18 19:43:24 +03:00
macOS: - Check each notification against a hash set of (event, element, related element) instead of scanning the whole pending queue. The ordered queue still drives delivery, so a burst of distinct events (e.g. 10,000 label changes) stays linear. Created/Destroyed are never de-duplicated. - Track the pending focus change by its index instead of scanning for it. Core: - SceneManager::update: also bound the loop by the live scene count, so a scene removed during the pass can't cause an out-of-range read. - Accessibility setters (role, label, description, hidden) return early on unchanged values. Re-applying CSS no longer allocates the properties block or notifies clients. API cleanup: - Remove AccessibilityRelation, AccessibilityRelationInfo and AccessibilityNodeInfo::relations. Nothing populated them. Remove the inspector row and the macOS linked-elements attribute that read them. AT-SPI GetRelationSet still answers with an empty set. - Drop unused includes in uiroot.cpp and accessibility.hpp. Docs: - Architecture guide: UIA and macOS queue events until update(); AT-SPI emits right away except for per-frame text diffs. Describe each backend's per-frame batching, including the macOS de-dup. Tests: - Add UnchangedAccessibilityPropertiesStaySilent.