diff --git a/accessible/public/nsPIAccessible.idl b/accessible/public/nsPIAccessible.idl index c7a71829887..813886a6ca3 100644 --- a/accessible/public/nsPIAccessible.idl +++ b/accessible/public/nsPIAccessible.idl @@ -41,7 +41,7 @@ interface nsIAccessible; interface nsIAccessibleEvent; -[uuid(96518e2e-b142-4b5d-9324-0fa5ba4f8bab)] +[uuid(817ae493-b238-4fbc-a623-d20ed81eebcd)] interface nsPIAccessible : nsISupports { /** @@ -69,6 +69,18 @@ interface nsPIAccessible : nsISupports */ void invalidateChildren(); + /** + * Fire accessible event. + * + * @param aEvent - DOM event + * @param aTarget - target of DOM event + * @param aData - additional information for accessible event. + * + * XXX: eventually this method will be removed (see bug 377022) + */ + void fireToolkitEvent(in unsigned long aEvent, in nsIAccessible aTarget, + in voidPtr aData); + /** * Fire accessible event. */ diff --git a/accessible/src/base/nsAccessible.cpp b/accessible/src/base/nsAccessible.cpp index b918675af3b..570b1c5b761 100644 --- a/accessible/src/base/nsAccessible.cpp +++ b/accessible/src/base/nsAccessible.cpp @@ -2007,6 +2007,21 @@ PRBool nsAccessible::IsNodeRelevant(nsIDOMNode *aNode) return aNode == relevantNode; } +NS_IMETHODIMP +nsAccessible::FireToolkitEvent(PRUint32 aEvent, nsIAccessible *aTarget, + void * aData) +{ + // Don't fire event for accessible that has been shut down. + if (!mWeakShell) + return NS_ERROR_FAILURE; + + nsCOMPtr accEvent = + new nsAccEvent(aEvent, aTarget, aData); + NS_ENSURE_TRUE(accEvent, NS_ERROR_OUT_OF_MEMORY); + + return FireAccessibleEvent(accEvent); +} + NS_IMETHODIMP nsAccessible::FireAccessibleEvent(nsIAccessibleEvent *aEvent) {