From 51d2c1b7aca00faefefa6589d73d21489f7f5357 Mon Sep 17 00:00:00 2001 From: Trevor Saunders Date: Wed, 13 May 2015 10:35:34 -0400 Subject: [PATCH] bug 1164976 - move AccessibleWrap::FireStateChangeEvent to be a member of MaiAtkObject r=davidb --- accessible/atk/AccessibleWrap.cpp | 26 ++++++++++++-------------- accessible/atk/nsMai.h | 5 +++++ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/accessible/atk/AccessibleWrap.cpp b/accessible/atk/AccessibleWrap.cpp index 1b8b96f1b85..cbe274e995c 100644 --- a/accessible/atk/AccessibleWrap.cpp +++ b/accessible/atk/AccessibleWrap.cpp @@ -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 diff --git a/accessible/atk/nsMai.h b/accessible/atk/nsMai.h index 127fbf44461..53e06daf499 100644 --- a/accessible/atk/nsMai.h +++ b/accessible/atk/nsMai.h @@ -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__ */