diff --git a/accessible/atk/AccessibleWrap.cpp b/accessible/atk/AccessibleWrap.cpp index 3987930edf0..2c1db4cb143 100644 --- a/accessible/atk/AccessibleWrap.cpp +++ b/accessible/atk/AccessibleWrap.cpp @@ -1088,11 +1088,16 @@ GetAccessibleWrap(AtkObject* aAtkObj) ProxyAccessible* GetProxy(AtkObject* aObj) { - if (!aObj || !IS_MAI_OBJECT(aObj) || - !MAI_ATK_OBJECT(aObj)->accWrap.IsProxy()) + return GetInternalObj(aObj).AsProxy(); +} + +AccessibleOrProxy +GetInternalObj(AtkObject* aObj) +{ + if (!aObj || !IS_MAI_OBJECT(aObj)) return nullptr; - return MAI_ATK_OBJECT(aObj)->accWrap.AsProxy(); + return MAI_ATK_OBJECT(aObj)->accWrap; } AtkObject* diff --git a/accessible/atk/nsMai.h b/accessible/atk/nsMai.h index 2e814df7ce6..76b7f260dc5 100644 --- a/accessible/atk/nsMai.h +++ b/accessible/atk/nsMai.h @@ -67,6 +67,7 @@ typedef struct _MaiAtkSocketClass mozilla::a11y::AccessibleWrap* GetAccessibleWrap(AtkObject* aAtkObj); mozilla::a11y::ProxyAccessible* GetProxy(AtkObject* aAtkObj); +mozilla::a11y::AccessibleOrProxy GetInternalObj(AtkObject* aObj); AtkObject* GetWrapperFor(mozilla::a11y::ProxyAccessible* aProxy); extern int atkMajorVersion, atkMinorVersion;