- Re-entrance guard (accessibilityUpdating) prevents infinite recursion when VoiceOver callbacks trigger redisplay during notification posting - Detect window tree change via FRAME_ROOT_WINDOW comparison; rebuild tree BEFORE iterating elements (prevents accessing freed windows) - Validate window+buffer pointers before posting notifications - Dynamic direction (Previous/Next/Discontiguous) and granularity (Character/Line) in SelectedTextChanged notifications based on actual point movement — fixes C-n/C-p not moving VoiceOver cursor - New windows (completions, splits) detected via lastRootWindow change
33 KiB
33 KiB