mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
bug 850981 - make AppendChild inline around InsertChildAt() r=surkov
This commit is contained in:
parent
1f9cf836e2
commit
4e9b298abf
@ -128,9 +128,9 @@ gboolean fireRootAccessibleAddedCB(gpointer data)
|
||||
}
|
||||
|
||||
bool
|
||||
ApplicationAccessibleWrap::AppendChild(Accessible* aChild)
|
||||
ApplicationAccessibleWrap::InsertChildAt(uint32_t aIdx, Accessible* aChild)
|
||||
{
|
||||
if (!ApplicationAccessible::AppendChild(aChild))
|
||||
if (!ApplicationAccessible::InsertChildAt(aIdx, aChild))
|
||||
return false;
|
||||
|
||||
AtkObject* atkAccessible = AccessibleWrap::GetAtkObject(aChild);
|
||||
|
@ -20,7 +20,7 @@ public:
|
||||
|
||||
// Accessible
|
||||
virtual mozilla::a11y::ENameValueFlag Name(nsString& aName);
|
||||
virtual bool AppendChild(Accessible* aChild);
|
||||
virtual bool InsertChildAt(uint32_t aIdx, Accessible* aChild) MOZ_OVERRIDE;
|
||||
virtual bool RemoveChild(Accessible* aChild);
|
||||
|
||||
/**
|
||||
|
@ -2639,41 +2639,31 @@ Accessible::InvalidateChildren()
|
||||
SetChildrenFlag(eChildrenUninitialized);
|
||||
}
|
||||
|
||||
bool
|
||||
Accessible::AppendChild(Accessible* aChild)
|
||||
{
|
||||
if (!aChild)
|
||||
return false;
|
||||
|
||||
if (!mChildren.AppendElement(aChild))
|
||||
return false;
|
||||
|
||||
if (!nsAccUtils::IsEmbeddedObject(aChild))
|
||||
SetChildrenFlag(eMixedChildren);
|
||||
|
||||
aChild->BindToParent(this, mChildren.Length() - 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
Accessible::InsertChildAt(uint32_t aIndex, Accessible* aChild)
|
||||
{
|
||||
if (!aChild)
|
||||
return false;
|
||||
|
||||
if (!mChildren.InsertElementAt(aIndex, aChild))
|
||||
return false;
|
||||
if (aIndex == mChildren.Length()) {
|
||||
if (!mChildren.AppendElement(aChild))
|
||||
return false;
|
||||
|
||||
for (uint32_t idx = aIndex + 1; idx < mChildren.Length(); idx++) {
|
||||
NS_ASSERTION(mChildren[idx]->mIndexInParent == idx - 1, "Accessible child index doesn't match");
|
||||
mChildren[idx]->mIndexInParent = idx;
|
||||
} else {
|
||||
if (!mChildren.InsertElementAt(aIndex, aChild))
|
||||
return false;
|
||||
|
||||
for (uint32_t idx = aIndex + 1; idx < mChildren.Length(); idx++) {
|
||||
NS_ASSERTION(mChildren[idx]->mIndexInParent == idx - 1, "Accessible child index doesn't match");
|
||||
mChildren[idx]->mIndexInParent = idx;
|
||||
}
|
||||
|
||||
mEmbeddedObjCollector = nullptr;
|
||||
}
|
||||
|
||||
if (!nsAccUtils::IsEmbeddedObject(aChild))
|
||||
SetChildrenFlag(eMixedChildren);
|
||||
|
||||
mEmbeddedObjCollector = nullptr;
|
||||
|
||||
aChild->BindToParent(this, aIndex);
|
||||
return true;
|
||||
}
|
||||
|
@ -333,7 +333,8 @@ public:
|
||||
/**
|
||||
* Append/insert/remove a child. Return true if operation was successful.
|
||||
*/
|
||||
virtual bool AppendChild(Accessible* aChild);
|
||||
bool AppendChild(Accessible* aChild)
|
||||
{ return InsertChildAt(mChildren.Length(), aChild); }
|
||||
virtual bool InsertChildAt(uint32_t aIndex, Accessible* aChild);
|
||||
virtual bool RemoveChild(Accessible* aChild);
|
||||
|
||||
|
@ -43,13 +43,6 @@ LeafAccessible::ChildAtPoint(int32_t aX, int32_t aY,
|
||||
return this;
|
||||
}
|
||||
|
||||
bool
|
||||
LeafAccessible::AppendChild(Accessible* aChild)
|
||||
{
|
||||
NS_NOTREACHED("AppendChild called on leaf accessible!");
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
LeafAccessible::InsertChildAt(uint32_t aIndex, Accessible* aChild)
|
||||
{
|
||||
|
@ -34,8 +34,6 @@ public:
|
||||
// Accessible
|
||||
virtual Accessible* ChildAtPoint(int32_t aX, int32_t aY,
|
||||
EWhichChildAtPoint aWhichChild);
|
||||
|
||||
virtual bool AppendChild(Accessible* aChild) MOZ_OVERRIDE MOZ_FINAL;
|
||||
virtual bool InsertChildAt(uint32_t aIndex, Accessible* aChild) MOZ_OVERRIDE MOZ_FINAL;
|
||||
virtual bool RemoveChild(Accessible* aChild) MOZ_OVERRIDE MOZ_FINAL;
|
||||
|
||||
|
@ -149,8 +149,10 @@ OuterDocAccessible::InvalidateChildren()
|
||||
}
|
||||
|
||||
bool
|
||||
OuterDocAccessible::AppendChild(Accessible* aAccessible)
|
||||
OuterDocAccessible::InsertChildAt(uint32_t aIdx, Accessible* aAccessible)
|
||||
{
|
||||
NS_ASSERTION(aAccessible->IsDoc(),
|
||||
"OuterDocAccessible should only have document child!");
|
||||
// We keep showing the old document for a bit after creating the new one,
|
||||
// and while building the new DOM and frame tree. That's done on purpose
|
||||
// to avoid weird flashes of default background color.
|
||||
@ -159,7 +161,7 @@ OuterDocAccessible::AppendChild(Accessible* aAccessible)
|
||||
if (mChildren.Length())
|
||||
mChildren[0]->Shutdown();
|
||||
|
||||
if (!AccessibleWrap::AppendChild(aAccessible))
|
||||
if (!AccessibleWrap::InsertChildAt(0, aAccessible))
|
||||
return false;
|
||||
|
||||
#ifdef A11Y_LOG
|
||||
|
@ -42,7 +42,7 @@ public:
|
||||
EWhichChildAtPoint aWhichChild);
|
||||
|
||||
virtual void InvalidateChildren();
|
||||
virtual bool AppendChild(Accessible* aAccessible);
|
||||
virtual bool InsertChildAt(uint32_t aIdx, Accessible* aChild) MOZ_OVERRIDE;
|
||||
virtual bool RemoveChild(Accessible* aAccessible);
|
||||
|
||||
// ActionAccessible
|
||||
|
@ -49,7 +49,7 @@ public: // construction, destruction
|
||||
virtual void Shutdown ();
|
||||
virtual void InvalidateChildren();
|
||||
|
||||
virtual bool AppendChild(Accessible* aAccessible);
|
||||
virtual bool InsertChildAt(uint32_t aIdx, Accessible* aChild) MOZ_OVERRIDE;
|
||||
virtual bool RemoveChild(Accessible* aAccessible);
|
||||
|
||||
virtual nsresult HandleAccEvent(AccEvent* aEvent);
|
||||
|
@ -198,14 +198,13 @@ AccessibleWrap::InvalidateChildren()
|
||||
}
|
||||
|
||||
bool
|
||||
AccessibleWrap::AppendChild(Accessible* aAccessible)
|
||||
AccessibleWrap::InsertChildAt(uint32_t aIdx, Accessible* aAccessible)
|
||||
{
|
||||
bool appended = Accessible::AppendChild(aAccessible);
|
||||
|
||||
if (appended && mNativeObject)
|
||||
bool inserted = Accessible::InsertChildAt(aIdx, aAccessible);
|
||||
if (inserted && mNativeObject)
|
||||
[mNativeObject appendChild:aAccessible];
|
||||
|
||||
return appended;
|
||||
return inserted;
|
||||
}
|
||||
|
||||
bool
|
||||
|
Loading…
Reference in New Issue
Block a user