diff --git a/mozilla/include/edt.h b/mozilla/include/edt.h index 2e879a37b60..889d14d3b07 100644 --- a/mozilla/include/edt.h +++ b/mozilla/include/edt.h @@ -627,6 +627,9 @@ void EDT_SetDirtyFlag( MWContext *pContext, XP_Bool bValue ); EDT_ClipboardResult EDT_InsertText( MWContext *pContext, char *pText ); EDT_ClipboardResult EDT_PasteText( MWContext *pContext, char *pText ); +#ifdef ENDER +EDT_ClipboardResult EDT_SetDefaultText( MWContext *pContext, char *pText ); //can done before finishedload can be called. +#endif /*ENDER*/ EDT_ClipboardResult EDT_PasteHTML( MWContext *pContext, char *pHtml ); /** API for pasting quoted text into the editor. diff --git a/mozilla/include/lo_ele.h b/mozilla/include/lo_ele.h index 2aea2bcb3e8..e438a6f0560 100644 --- a/mozilla/include/lo_ele.h +++ b/mozilla/include/lo_ele.h @@ -583,6 +583,9 @@ struct LO_SubDocStruct_struct { #define FORM_TYPE_KEYGEN 16 #define FORM_TYPE_READONLY 17 #define FORM_TYPE_OBJECT 18 +#ifdef ENDER +#define FORM_TYPE_HTMLAREA 19 +#endif /*ENDER*/ #define FORM_METHOD_GET 0 #define FORM_METHOD_POST 1 diff --git a/mozilla/lib/layout/edtbuf.cpp b/mozilla/lib/layout/edtbuf.cpp index f886f9d368f..2a74b682b4f 100644 --- a/mozilla/lib/layout/edtbuf.cpp +++ b/mozilla/lib/layout/edtbuf.cpp @@ -1518,6 +1518,9 @@ CEditBuffer::CEditBuffer(MWContext *pContext, XP_Bool bImportText): m_pBackgroundImage(0), m_bBackgroundNoSave(FALSE), m_pBodyExtra(0), +#ifdef ENDER + m_pImportedStream(0), //ENDER +#endif //ENDER m_pLoadingImage(0), m_pSaveObject(0), m_bMultiSpaceMode(TRUE), @@ -10205,6 +10208,7 @@ void CEditBuffer::FinishedLoad2() m_pRoot->ValidateTree(); #endif + // Temporarily set a legal selection. m_pCurrent = m_pRoot->NextLeafAll(); while ( m_pCurrent && m_pCurrent->GetElementType() == eInternalAnchorElement ) { @@ -10230,6 +10234,14 @@ void CEditBuffer::FinishedLoad2() XP_Bool bIsNewDocument = EDT_IS_NEW_DOCUMENT(m_pContext) && !GetCommandLog()->InReload(); +#if ENDER + if (m_pImportedStream)//ENDER + { + PasteText( m_pImportedStream, FALSE, FALSE, TRUE ,TRUE); + XP_FREE(m_pImportedStream); + m_pImportedStream=NULL; + } +#endif //ENDER if( bIsNewDocument ) { m_bDummyCharacterAddedDuringLoad = TRUE; /* Sometimes it's a no-break space. */ @@ -10274,7 +10286,6 @@ void CEditBuffer::FinishedLoad2() // if we imported a text file if( m_bImportText ) ConvertCurrentDocToNewDoc(); - if ( bShouldSendOpenEvent ) { History_entry * hist_entry = SHIST_GetCurrent(&(m_pContext->hist)); char* pURL = hist_entry ? hist_entry->address : 0; diff --git a/mozilla/lib/layout/layform.c b/mozilla/lib/layout/layform.c index 0493059bf85..f950e8caa21 100644 --- a/mozilla/lib/layout/layform.c +++ b/mozilla/lib/layout/layform.c @@ -333,7 +333,11 @@ LO_isTabableFormElement( LO_FormElementStruct * next_ele ) || next_ele->element_data->type == FORM_TYPE_SELECT_ONE || next_ele->element_data->type == FORM_TYPE_SELECT_MULT || next_ele->element_data->type == FORM_TYPE_TEXTAREA - || next_ele->element_data->type == FORM_TYPE_FILE) + || next_ele->element_data->type == FORM_TYPE_FILE +#ifdef ENDER + || next_ele->element_data->type == FORM_TYPE_HTMLAREA +#endif /*ENDER*/ + ) { return(TRUE); } @@ -363,6 +367,7 @@ LO_isTabableFormElement( LO_FormElementStruct * next_ele ) * FORM_TYPE_SELECT_ONE * FORM_TYPE_SELECT_MULT * FORM_TYPE_TEXTAREA + * FORM_TYPE_HTMLAREA * * If the last element is passed in the first element is returned. * If garbage is passed in the first element is returned. @@ -394,7 +399,11 @@ LO_ReturnNextFormElementInTabGroup(MWContext *context, || next_ele->element_data->type == FORM_TYPE_SELECT_ONE || next_ele->element_data->type == FORM_TYPE_SELECT_MULT || next_ele->element_data->type == FORM_TYPE_TEXTAREA - || next_ele->element_data->type == FORM_TYPE_FILE) + || next_ele->element_data->type == FORM_TYPE_FILE +#ifdef ENDER + || next_ele->element_data->type == FORM_TYPE_HTMLAREA +#endif /*ENDER*/ + ) { return(next_ele); @@ -2293,6 +2302,10 @@ lo_BeginTextareaTag(MWContext *context, lo_DocState *state, PA_Tag *tag) LO_TextAttr tmp_attr; LO_TextAttr *old_attr; LO_TextAttr *attr; +#ifdef ENDER + PA_Block type_block; + char *type_str; +#endif /*ENDER*/ old_attr = state->font_stack->text_attr; lo_CopyTextAttr(old_attr, &tmp_attr); @@ -2301,8 +2314,25 @@ lo_BeginTextareaTag(MWContext *context, lo_DocState *state, PA_Tag *tag) lo_PushFont(state, tag->type, attr); +#ifdef ENDER + type_block = lo_FetchParamValue(context, tag, PARAM_TYPE); + if (type_block) + { + PA_LOCK(type_str, char *, type_block); + if (!XP_STRCMP(type_str,"htmlarea")) //ONLY LOWERCASE?? + form_element = lo_form_textarea(context, state, tag, + FORM_TYPE_HTMLAREA); + else + form_element = lo_form_textarea(context, state, tag, + FORM_TYPE_TEXTAREA); + + PA_FREE(type_block); + } + else +#else form_element = lo_form_textarea(context, state, tag, FORM_TYPE_TEXTAREA); +#endif /*ENDER*/ /* * Make a copy of the tag so that we can correctly reflect this @@ -2602,6 +2632,9 @@ lo_get_form_element_data(MWContext *context, } break; case FORM_TYPE_TEXTAREA: +#ifdef ENDER + case FORM_TYPE_HTMLAREA : +#endif /*ENDER*/ { lo_FormElementTextareaData *form_data; @@ -4116,6 +4149,9 @@ lo_clone_form_element_data(LO_FormElementData *element_data) break; case FORM_TYPE_TEXTAREA: +#ifdef ENDER + case FORM_TYPE_HTMLAREA: +#endif /*ENDER*/ { lo_FormElementTextareaData *form_data, *new_form_data; diff --git a/mozilla/lib/layout/layfree.c b/mozilla/lib/layout/layfree.c index 3368fc38358..1874c45d57d 100644 --- a/mozilla/lib/layout/layfree.c +++ b/mozilla/lib/layout/layfree.c @@ -145,6 +145,9 @@ lo_FreeFormElementData(LO_FormElementData *element_data) } break; case FORM_TYPE_TEXTAREA: +#ifdef ENDER + case FORM_TYPE_HTMLAREA : +#endif /*ENDER*/ { lo_FormElementTextareaData *form_data; @@ -324,6 +327,9 @@ lo_CleanFormElementData(LO_FormElementData *element_data) } break; case FORM_TYPE_TEXTAREA: +#ifdef ENDER + case FORM_TYPE_HTMLAREA : +#endif /*ENDER*/ { lo_FormElementTextareaData *form_data;