diff --git a/mozilla/content/html/content/src/nsHTMLObjectElement.cpp b/mozilla/content/html/content/src/nsHTMLObjectElement.cpp index df388f2e3d4..82859e73fd6 100644 --- a/mozilla/content/html/content/src/nsHTMLObjectElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLObjectElement.cpp @@ -177,10 +177,6 @@ nsHTMLObjectElement::GetForm(nsIDOMHTMLFormElement** aForm) PRBool nsHTMLObjectElement::IsFocusable(PRInt32 *aTabIndex) { - if (aTabIndex) { - GetTabIndex(aTabIndex); - } - nsIFrame* frame = GetPrimaryFrame(PR_FALSE); if (frame) { nsIObjectFrame *objFrame = nsnull; @@ -191,12 +187,16 @@ nsHTMLObjectElement::IsFocusable(PRInt32 *aTabIndex) if (pluginInstance) { // Has a plugin: let the plugin decide what to do in terms of // internal focus from mouse clicks + if (aTabIndex) { + GetTabIndex(aTabIndex); + } + return PR_TRUE; } } } - - return HasAttr(kNameSpaceID_None, nsHTMLAtoms::tabindex); + + return nsGenericHTMLFormElement::IsFocusable(aTabIndex); } diff --git a/mozilla/content/html/content/src/nsHTMLSharedElement.cpp b/mozilla/content/html/content/src/nsHTMLSharedElement.cpp index 304c380d51a..c455cc685ef 100644 --- a/mozilla/content/html/content/src/nsHTMLSharedElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLSharedElement.cpp @@ -136,8 +136,7 @@ public: NS_IMETHOD GetTabIndex(PRInt32* aTabIndex); NS_IMETHOD SetTabIndex(PRInt32 aTabIndex); // Let plugin decide whether it wants focus from mouse clicks - virtual PRBool IsFocusable(PRInt32 *aTabIndex = nsnull) - { if (aTabIndex) GetTabIndex(aTabIndex); return PR_TRUE; } + virtual PRBool IsFocusable(PRInt32 *aTabIndex = nsnull); virtual PRBool ParseAttribute(nsIAtom* aAttribute, const nsAString& aValue, @@ -511,3 +510,17 @@ nsHTMLSharedElement::GetAttributeMappingFunction() const return nsGenericHTMLElement::GetAttributeMappingFunction(); } + +PRBool +nsHTMLSharedElement::IsFocusable(PRInt32 *aTabIndex) +{ + if (mNodeInfo->Equals(nsHTMLAtoms::embed)) { + // Let plugin decide whether it wants focus from mouse clicks + if (aTabIndex) { + GetTabIndex(aTabIndex); + } + return PR_TRUE; + } + + return nsGenericHTMLElement::IsFocusable(aTabIndex); +}