import from UXP: [layout] Hide accessible carets when needed. (4bf23690)

This commit is contained in:
2026-05-26 10:23:03 +08:00
parent fc43479c04
commit 1ceaab06aa
+10
View File
@@ -408,11 +408,21 @@ AccessibleCaretManager::UpdateCaretsForSelectionMode(UpdateCaretsHint aHint)
if (firstCaretResult == PositionChangedResult::Changed ||
secondCaretResult == PositionChangedResult::Changed) {
nsWeakFrame weakStartFrame = startFrame;
nsWeakFrame weakEndFrame = endFrame;
// Flush layout to make the carets intersection correct.
FlushLayout();
if (IsTerminated()) {
return;
}
if ((startFrame && !weakStartFrame.IsAlive()) ||
(endFrame && !weakEndFrame.IsAlive())) {
mFirstCaret.get()->SetAppearance(Appearance::NormalNotShown);
mSecondCaret.get()->SetAppearance(Appearance::NormalNotShown);
DispatchCaretStateChangedEvent(CaretChangedReason::Visibilitychange);
return;
}
}
if (aHint == UpdateCaretsHint::Default) {