bug 1164976 - move AccessibleWrap::FireStateChangeEvent to be a member of MaiAtkObject r=davidb

This commit is contained in:
Trevor Saunders 2015-05-13 10:35:34 -04:00
parent 7669581ac8
commit 51d2c1b7ac
2 changed files with 17 additions and 14 deletions

View File

@ -1128,7 +1128,12 @@ AccessibleWrap::HandleAccEvent(AccEvent* aEvent)
switch (type) {
case nsIAccessibleEvent::EVENT_STATE_CHANGE:
return FireAtkStateChangeEvent(aEvent, atkObj);
{
AccStateChangeEvent* event = downcast_accEvent(aEvent);
MAI_ATK_OBJECT(atkObj)->FireStateChangeEvent(event->GetState(),
event->IsStateEnabled());
break;
}
case nsIAccessibleEvent::EVENT_TEXT_REMOVED:
case nsIAccessibleEvent::EVENT_TEXT_INSERTED:
@ -1380,15 +1385,10 @@ a11y::ProxyEvent(ProxyAccessible* aTarget, uint32_t aEventType)
}
}
nsresult
AccessibleWrap::FireAtkStateChangeEvent(AccEvent* aEvent,
AtkObject* aObject)
void
MaiAtkObject::FireStateChangeEvent(uint64_t aState, bool aEnabled)
{
AccStateChangeEvent* event = downcast_accEvent(aEvent);
NS_ENSURE_TRUE(event, NS_ERROR_FAILURE);
bool isEnabled = event->IsStateEnabled();
int32_t stateIndex = AtkStateMap::GetStateIndexFor(event->GetState());
int32_t stateIndex = AtkStateMap::GetStateIndexFor(aState);
if (stateIndex >= 0) {
NS_ASSERTION(gAtkStateMap[stateIndex].stateMapEntryType != kNoSuchState,
"No such state");
@ -1398,16 +1398,14 @@ AccessibleWrap::FireAtkStateChangeEvent(AccEvent* aEvent,
"State changes should not fired for this state");
if (gAtkStateMap[stateIndex].stateMapEntryType == kMapOpposite)
isEnabled = !isEnabled;
aEnabled = !aEnabled;
// Fire state change for first state if there is one to map
atk_object_notify_state_change(aObject,
atk_object_notify_state_change(&parent,
gAtkStateMap[stateIndex].atkState,
isEnabled);
aEnabled);
}
}
return NS_OK;
}
nsresult

View File

@ -76,6 +76,11 @@ struct MaiAtkObject
* Shutdown this AtkObject.
*/
void Shutdown();
/*
* Notify atk of a state change on this AtkObject.
*/
void FireStateChangeEvent(uint64_t aState, bool aEnabled);
};
#endif /* __NS_MAI_H__ */