зеркало из https://github.com/mozilla/pjs.git
Fix for bug 39422, fix use of event.target from JS. a:leaf, r:vidur
This commit is contained in:
Родитель
363be47794
Коммит
c352adf336
|
@ -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)
|
||||
{
|
||||
|
|
Загрузка…
Ссылка в новой задаче