mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
Bug 1261170 - add a single node ProcessContentInserted method version, r=yzen
This commit is contained in:
parent
9569ed5e0a
commit
62081fdb80
@ -301,13 +301,11 @@ NotificationController::WillRefresh(mozilla::TimeStamp aTime)
|
||||
#endif
|
||||
|
||||
// Make sure the text node is in accessible document still.
|
||||
Accessible* container = mDocument->GetAccessibleOrContainer(containerNode);
|
||||
NS_ASSERTION(container,
|
||||
"Text node having rendered text hasn't accessible document!");
|
||||
Accessible* container = mDocument->AccessibleOrTrueContainer(containerNode);
|
||||
MOZ_ASSERT(container,
|
||||
"Text node having rendered text hasn't accessible document!");
|
||||
if (container) {
|
||||
nsTArray<nsCOMPtr<nsIContent> > insertedContents;
|
||||
insertedContents.AppendElement(textNode);
|
||||
mDocument->ProcessContentInserted(container, &insertedContents);
|
||||
mDocument->ProcessContentInserted(container, textNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1358,23 +1358,7 @@ DocAccessible::ProcessInvalidationList()
|
||||
if (!HasAccessible(content)) {
|
||||
Accessible* container = GetContainerAccessible(content);
|
||||
if (container) {
|
||||
TreeWalker walker(container);
|
||||
if (container->IsAcceptableChild(content) && walker.Seek(content)) {
|
||||
Accessible* child =
|
||||
GetAccService()->GetOrCreateAccessible(content, container);
|
||||
if (child) {
|
||||
RefPtr<AccReorderEvent> reorderEvent =
|
||||
new AccReorderEvent(container);
|
||||
|
||||
AutoTreeMutation mt(container);
|
||||
container->InsertAfter(child, walker.Prev());
|
||||
mt.AfterInsertion(child);
|
||||
mt.Done();
|
||||
|
||||
uint32_t flags = UpdateTreeInternal(child, true, reorderEvent);
|
||||
FireEventsOnInsertion(container, reorderEvent, flags);
|
||||
}
|
||||
}
|
||||
ProcessContentInserted(container, content);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1760,8 +1744,9 @@ DocAccessible::ProcessContentInserted(Accessible* aContainer,
|
||||
const nsTArray<nsCOMPtr<nsIContent> >* aNodes)
|
||||
{
|
||||
// Process insertions if the container accessible is still in tree.
|
||||
if (!HasAccessible(aContainer->GetNode()))
|
||||
if (!aContainer->IsInDocument()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If new root content has been inserted then update it.
|
||||
if (aContainer == this) {
|
||||
@ -1821,6 +1806,32 @@ DocAccessible::ProcessContentInserted(Accessible* aContainer,
|
||||
FireEventsOnInsertion(aContainer, reorderEvent, updateFlags);
|
||||
}
|
||||
|
||||
void
|
||||
DocAccessible::ProcessContentInserted(Accessible* aContainer, nsIContent* aNode)
|
||||
{
|
||||
if (!aContainer->IsInDocument()) {
|
||||
return;
|
||||
}
|
||||
|
||||
TreeWalker walker(aContainer);
|
||||
if (aContainer->IsAcceptableChild(aNode) && walker.Seek(aNode)) {
|
||||
Accessible* child =
|
||||
GetAccService()->GetOrCreateAccessible(aNode, aContainer);
|
||||
|
||||
if (child) {
|
||||
RefPtr<AccReorderEvent> reorderEvent = new AccReorderEvent(aContainer);
|
||||
|
||||
AutoTreeMutation mt(aContainer);
|
||||
aContainer->InsertAfter(child, walker.Prev());
|
||||
mt.AfterInsertion(child);
|
||||
mt.Done();
|
||||
|
||||
uint32_t flags = UpdateTreeInternal(child, true, reorderEvent);
|
||||
FireEventsOnInsertion(aContainer, reorderEvent, flags);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
DocAccessible::FireEventsOnInsertion(Accessible* aContainer,
|
||||
AccReorderEvent* aReorderEvent,
|
||||
|
@ -490,6 +490,8 @@ protected:
|
||||
*/
|
||||
void ProcessContentInserted(Accessible* aContainer,
|
||||
const nsTArray<nsCOMPtr<nsIContent> >* aInsertedContent);
|
||||
void ProcessContentInserted(Accessible* aContainer,
|
||||
nsIContent* aInsertedContent);
|
||||
|
||||
/**
|
||||
* Used to notify the document to make it process the invalidation list.
|
||||
|
Loading…
Reference in New Issue
Block a user