when form elements are generated via a template, set the form to the XUL Doc's hidden form so that the element behaves correctly.

r=waterson


git-svn-id: svn://10.0.0.236/trunk@59816 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
alecf%netscape.com
2000-02-05 01:03:39 +00:00
parent e932a61bf1
commit b3c0caac38
3 changed files with 33 additions and 0 deletions

View File

@@ -83,6 +83,8 @@
#include "prlog.h"
#include "rdf.h"
#include "rdfutil.h"
#include "nsIFormControl.h"
#include "nsIDOMHTMLFormElement.h"
// Return values for EnsureElementHasGenericChild()
#define NS_RDF_ELEMENT_GOT_CREATED NS_RDF_NO_VALUE
@@ -3164,6 +3166,15 @@ RDFGenericBuilderImpl::CreateElement(PRInt32 aNameSpaceID,
return NS_ERROR_UNEXPECTED;
}
//
nsCOMPtr<nsIFormControl> formControl = do_QueryInterface(result);
if (formControl) {
nsCOMPtr<nsIDOMHTMLFormElement> form;
rv = mDocument->GetForm(getter_AddRefs(form));
if (NS_SUCCEEDED(rv) && form)
formControl->SetForm(form);
}
rv = result->SetDocument(doc, PR_FALSE);
NS_ASSERTION(NS_SUCCEEDED(rv), "unable to set element's document");
if (NS_FAILED(rv)) return rv;

View File

@@ -83,6 +83,8 @@
#include "prlog.h"
#include "rdf.h"
#include "rdfutil.h"
#include "nsIFormControl.h"
#include "nsIDOMHTMLFormElement.h"
// Return values for EnsureElementHasGenericChild()
#define NS_RDF_ELEMENT_GOT_CREATED NS_RDF_NO_VALUE
@@ -3164,6 +3166,15 @@ RDFGenericBuilderImpl::CreateElement(PRInt32 aNameSpaceID,
return NS_ERROR_UNEXPECTED;
}
//
nsCOMPtr<nsIFormControl> formControl = do_QueryInterface(result);
if (formControl) {
nsCOMPtr<nsIDOMHTMLFormElement> form;
rv = mDocument->GetForm(getter_AddRefs(form));
if (NS_SUCCEEDED(rv) && form)
formControl->SetForm(form);
}
rv = result->SetDocument(doc, PR_FALSE);
NS_ASSERTION(NS_SUCCEEDED(rv), "unable to set element's document");
if (NS_FAILED(rv)) return rv;

View File

@@ -83,6 +83,8 @@
#include "prlog.h"
#include "rdf.h"
#include "rdfutil.h"
#include "nsIFormControl.h"
#include "nsIDOMHTMLFormElement.h"
// Return values for EnsureElementHasGenericChild()
#define NS_RDF_ELEMENT_GOT_CREATED NS_RDF_NO_VALUE
@@ -3164,6 +3166,15 @@ RDFGenericBuilderImpl::CreateElement(PRInt32 aNameSpaceID,
return NS_ERROR_UNEXPECTED;
}
//
nsCOMPtr<nsIFormControl> formControl = do_QueryInterface(result);
if (formControl) {
nsCOMPtr<nsIDOMHTMLFormElement> form;
rv = mDocument->GetForm(getter_AddRefs(form));
if (NS_SUCCEEDED(rv) && form)
formControl->SetForm(form);
}
rv = result->SetDocument(doc, PR_FALSE);
NS_ASSERTION(NS_SUCCEEDED(rv), "unable to set element's document");
if (NS_FAILED(rv)) return rv;