Bug 1294853: Move an accessible child before showing its new parent. r?surkov draft
authorMichael Li <michael.li11702@gmail.com>
Fri, 12 Aug 2016 17:22:03 -0400
changeset 400248 ec5457aae76b237e45eb41f6769b2e3ec2c9ecf9
parent 399698 233ab21b64b5d5e9f2f16ea2d4cfb4c8b293c5c4
child 400249 917bc4e26b1789022b1eec028e73e43875d8d6ed
push id26107
push userbmo:mili@mozilla.com
push dateFri, 12 Aug 2016 21:24:40 +0000
reviewerssurkov
bugs1294853
milestone51.0a1
Bug 1294853: Move an accessible child before showing its new parent. r?surkov MozReview-Commit-ID: EcdEpOZhJu7
accessible/generic/DocAccessible.cpp
--- a/accessible/generic/DocAccessible.cpp
+++ b/accessible/generic/DocAccessible.cpp
@@ -1879,20 +1879,23 @@ DocAccessible::ProcessContentInserted(Ac
       child = GetAccService()->CreateAccessible(aNode, aContainer);
     }
 
     if (child) {
       TreeMutation mt(aContainer);
       if (!aContainer->InsertAfter(child, walker.Prev())) {
         return;
       }
+      // Create subtree, including moving grandchildren and adding those
+      // grandchildren's hide and show events, before adding the new child's
+      // show event.
+      CreateSubtree(child);
       mt.AfterInsertion(child);
       mt.Done();
 
-      CreateSubtree(child);
       FireEventsOnInsertion(aContainer);
     }
   }
 
 #ifdef A11Y_LOG
   logging::TreeInfo("children after insertion", logging::eVerbose, aContainer);
 #endif
 }