Fix for bug 39422, fix use of event.target from JS. a:leaf, r:vidur
git-svn-id: svn://10.0.0.236/trunk@70073 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -98,12 +98,50 @@ nsEventListenerManager::~nsEventListenerManager()
|
||||
|
||||
NS_IMPL_ADDREF(nsEventListenerManager)
|
||||
NS_IMPL_RELEASE(nsEventListenerManager)
|
||||
|
||||
// We need to return to the old QI form briefly to deal with the
|
||||
// results of the partial aggregation we began using nsGenericElement
|
||||
// and nsGenericDOMDataNode. We should look for a better long term
|
||||
// solution. -joki
|
||||
nsresult nsEventListenerManager::QueryInterface(REFNSIID aIID, void** aInstancePtr)
|
||||
{
|
||||
if (nsnull == aInstancePtr) {
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
if (aIID.Equals(NS_GET_IID(nsIEventListenerManager))) {
|
||||
*aInstancePtr = (void*)(nsIEventListenerManager*)this;
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
if (aIID.Equals(NS_GET_IID(nsIDOMEventTarget))) {
|
||||
*aInstancePtr = (void*)(nsIDOMEventTarget*)this;
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
if (aIID.Equals(NS_GET_IID(nsIDOMEventReceiver))) {
|
||||
*aInstancePtr = (void*)(nsIDOMEventReceiver*)this;
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
if (aIID.Equals(NS_GET_IID(nsISupports))) {
|
||||
*aInstancePtr = (void*)(nsISupports*)(nsIEventListenerManager*)this;
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
if (mTarget) {
|
||||
return mTarget->QueryInterface(aIID, aInstancePtr);
|
||||
}
|
||||
return NS_NOINTERFACE;
|
||||
}
|
||||
|
||||
#if 0
|
||||
NS_INTERFACE_MAP_BEGIN(nsEventListenerManager)
|
||||
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIEventListenerManager)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIEventListenerManager)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMEventTarget)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMEventReceiver)
|
||||
NS_INTERFACE_MAP_END
|
||||
#endif
|
||||
|
||||
nsVoidArray** nsEventListenerManager::GetListenersByIID(const nsIID& aIID)
|
||||
{
|
||||
|
||||
@@ -98,12 +98,50 @@ nsEventListenerManager::~nsEventListenerManager()
|
||||
|
||||
NS_IMPL_ADDREF(nsEventListenerManager)
|
||||
NS_IMPL_RELEASE(nsEventListenerManager)
|
||||
|
||||
// We need to return to the old QI form briefly to deal with the
|
||||
// results of the partial aggregation we began using nsGenericElement
|
||||
// and nsGenericDOMDataNode. We should look for a better long term
|
||||
// solution. -joki
|
||||
nsresult nsEventListenerManager::QueryInterface(REFNSIID aIID, void** aInstancePtr)
|
||||
{
|
||||
if (nsnull == aInstancePtr) {
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
if (aIID.Equals(NS_GET_IID(nsIEventListenerManager))) {
|
||||
*aInstancePtr = (void*)(nsIEventListenerManager*)this;
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
if (aIID.Equals(NS_GET_IID(nsIDOMEventTarget))) {
|
||||
*aInstancePtr = (void*)(nsIDOMEventTarget*)this;
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
if (aIID.Equals(NS_GET_IID(nsIDOMEventReceiver))) {
|
||||
*aInstancePtr = (void*)(nsIDOMEventReceiver*)this;
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
if (aIID.Equals(NS_GET_IID(nsISupports))) {
|
||||
*aInstancePtr = (void*)(nsISupports*)(nsIEventListenerManager*)this;
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
if (mTarget) {
|
||||
return mTarget->QueryInterface(aIID, aInstancePtr);
|
||||
}
|
||||
return NS_NOINTERFACE;
|
||||
}
|
||||
|
||||
#if 0
|
||||
NS_INTERFACE_MAP_BEGIN(nsEventListenerManager)
|
||||
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIEventListenerManager)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIEventListenerManager)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMEventTarget)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMEventReceiver)
|
||||
NS_INTERFACE_MAP_END
|
||||
#endif
|
||||
|
||||
nsVoidArray** nsEventListenerManager::GetListenersByIID(const nsIID& aIID)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user