Bug 386820, Gmail, compose mail, cursor missing in (rich formatting) textfield, r+sr=peterv

This commit is contained in:
Olli.Pettay@helsinki.fi 2007-07-04 11:20:00 -07:00
parent 216af4ec70
commit 8c3c65783f

View File

@ -351,8 +351,13 @@ nsEditor::InstallEventListeners()
rv |= piTarget->AddEventListenerByIID(mMouseListenerP,
NS_GET_IID(nsIDOMMouseListener));
rv |= piTarget->AddEventListenerByIID(mFocusListenerP,
NS_GET_IID(nsIDOMFocusListener));
if (elmP) {
// Focus event doesn't bubble so adding the listener to capturing phase.
// Make sure this works after bug 235441 gets fixed.
rv |= elmP->AddEventListenerByIID(mFocusListenerP,
NS_GET_IID(nsIDOMFocusListener),
NS_EVENT_FLAG_CAPTURE);
}
rv |= piTarget->AddEventListenerByIID(mTextListenerP,
NS_GET_IID(nsIDOMTextListener));
@ -385,14 +390,13 @@ nsEditor::RemoveEventListeners()
if (piTarget)
{
// unregister the event listeners with the DOM event reveiver
// unregister the event listeners with the DOM event target
nsCOMPtr<nsIEventListenerManager> elmP;
piTarget->GetListenerManager(PR_TRUE, getter_AddRefs(elmP));
if (mKeyListenerP)
{
nsCOMPtr<nsIDOMEventGroup> sysGroup;
piTarget->GetSystemEventGroup(getter_AddRefs(sysGroup));
nsCOMPtr<nsIEventListenerManager> elmP;
piTarget->GetListenerManager(PR_TRUE, getter_AddRefs(elmP));
if (sysGroup && elmP)
{
elmP->RemoveEventListenerByType(mKeyListenerP,
@ -409,10 +413,11 @@ nsEditor::RemoveEventListeners()
NS_GET_IID(nsIDOMMouseListener));
}
if (mFocusListenerP)
if (mFocusListenerP && elmP)
{
piTarget->RemoveEventListenerByIID(mFocusListenerP,
NS_GET_IID(nsIDOMFocusListener));
elmP->RemoveEventListenerByIID(mFocusListenerP,
NS_GET_IID(nsIDOMFocusListener),
NS_EVENT_FLAG_CAPTURE);
}
if (mTextListenerP)