Module: wine Branch: master Commit: deef1401860ecdebb6bf24950ecc0bcf766bb95e URL: http://source.winehq.org/git/wine.git/?a=commit;h=deef1401860ecdebb6bf24950e...
Author: Jacek Caban jacek@codeweavers.com Date: Sun Nov 1 19:25:13 2009 +0100
mshtml: Moved readystate to HTMLWindow.
---
dlls/mshtml/editor.c | 6 +++--- dlls/mshtml/htmldoc.c | 5 ++--- dlls/mshtml/htmldoc3.c | 2 +- dlls/mshtml/htmlwindow.c | 1 + dlls/mshtml/mshtml_private.h | 2 +- dlls/mshtml/mutation.c | 2 +- dlls/mshtml/nsevents.c | 5 ++++- dlls/mshtml/olecmd.c | 2 +- dlls/mshtml/persist.c | 2 +- 9 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/dlls/mshtml/editor.c b/dlls/mshtml/editor.c index 651e856..568e127 100644 --- a/dlls/mshtml/editor.c +++ b/dlls/mshtml/editor.c @@ -150,7 +150,7 @@ static DWORD query_ns_edit_status(HTMLDocument *This, const char *nscmd) nsICommandParams *nsparam; PRBool b = FALSE;
- if(This->doc_obj->usermode != EDITMODE || This->doc_obj->readystate < READYSTATE_INTERACTIVE) + if(This->doc_obj->usermode != EDITMODE || This->window->readystate < READYSTATE_INTERACTIVE) return OLECMDF_SUPPORTED;
if(This->doc_obj->nscontainer && nscmd) { @@ -185,7 +185,7 @@ static DWORD query_align_status(HTMLDocument *This, const char *align_str) nsICommandParams *nsparam; char *align = NULL;
- if(This->doc_obj->usermode != EDITMODE || This->doc_obj->readystate < READYSTATE_INTERACTIVE) + if(This->doc_obj->usermode != EDITMODE || This->window->readystate < READYSTATE_INTERACTIVE) return OLECMDF_SUPPORTED;
if(This->doc_obj->nscontainer) { @@ -713,7 +713,7 @@ static HRESULT query_justify(HTMLDocument *This, OLECMD *cmd) case IDM_JUSTIFYLEFT: TRACE("(%p) IDM_JUSTIFYLEFT\n", This); /* FIXME: We should set OLECMDF_LATCHED only if it's set explicitly. */ - if(This->doc_obj->usermode != EDITMODE || This->doc_obj->readystate < READYSTATE_INTERACTIVE) + if(This->doc_obj->usermode != EDITMODE || This->window->readystate < READYSTATE_INTERACTIVE) cmd->cmdf = OLECMDF_SUPPORTED; else cmd->cmdf = OLECMDF_SUPPORTED | OLECMDF_ENABLED; diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c index bc20a2d..836f1ae 100644 --- a/dlls/mshtml/htmldoc.c +++ b/dlls/mshtml/htmldoc.c @@ -455,7 +455,7 @@ static HRESULT WINAPI HTMLDocument_get_readyState(IHTMLDocument2 *iface, BSTR *p if(!p) return E_POINTER;
- *p = SysAllocString(readystate_str[This->doc_obj->readystate]); + *p = SysAllocString(readystate_str[This->window->readystate]); return S_OK; }
@@ -1503,7 +1503,7 @@ static HRESULT WINAPI DocDispatchEx_Invoke(IDispatchEx *iface, DISPID dispIdMemb return E_INVALIDARG;
V_VT(pVarResult) = VT_I4; - V_I4(pVarResult) = This->doc_obj->readystate; + V_I4(pVarResult) = This->window->readystate; return S_OK; }
@@ -1978,7 +1978,6 @@ HRESULT HTMLDocument_Create(IUnknown *pUnkOuter, REFIID riid, void** ppvObject) doc->basedoc.doc_obj = doc;
doc->usermode = UNKNOWN_USERMODE; - doc->readystate = READYSTATE_UNINITIALIZED;
doc->nscontainer = NSContainer_Create(doc, NULL); if(!doc->nscontainer) { diff --git a/dlls/mshtml/htmldoc3.c b/dlls/mshtml/htmldoc3.c index e4c2d4f..a00fa95 100644 --- a/dlls/mshtml/htmldoc3.c +++ b/dlls/mshtml/htmldoc3.c @@ -141,7 +141,7 @@ static HRESULT WINAPI HTMLDocument3_get_documentElement(IHTMLDocument3 *iface, I
TRACE("(%p)->(%p)\n", This, p);
- if(This->doc_obj->readystate == READYSTATE_UNINITIALIZED) { + if(This->window->readystate == READYSTATE_UNINITIALIZED) { *p = NULL; return S_OK; } diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c index 6158b32..9f3b3e7 100644 --- a/dlls/mshtml/htmlwindow.c +++ b/dlls/mshtml/htmlwindow.c @@ -1648,6 +1648,7 @@ HRESULT HTMLWindow_Create(HTMLDocumentObj *doc_obj, nsIDOMWindow *nswindow, HTML }
window->scriptmode = parent ? parent->scriptmode : SCRIPTMODE_GECKO; + window->readystate = READYSTATE_UNINITIALIZED; list_init(&window->script_hosts);
window->task_magic = get_task_target_magic(); diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index 175dce7..94d835d 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -227,6 +227,7 @@ struct HTMLWindow { nsIDOMWindow *nswindow; HTMLWindow *parent; HTMLFrameBase *frame_element; + READYSTATE readystate;
nsChannelBSC *bscallback; IMoniker *mon; @@ -366,7 +367,6 @@ struct HTMLDocumentObj { BOOL focus;
USERMODE usermode; - READYSTATE readystate; LPWSTR mime;
DWORD update; diff --git a/dlls/mshtml/mutation.c b/dlls/mshtml/mutation.c index ba636dd..b3cc62a 100644 --- a/dlls/mshtml/mutation.c +++ b/dlls/mshtml/mutation.c @@ -366,7 +366,7 @@ static void handle_end_load(HTMLDocumentNode *This) TRACE("\n");
if(This != This->basedoc.doc_obj->basedoc.doc_node) { - set_ready_state(This, READYSTATE_INTERACTIVE); + set_ready_state(This->basedoc.window, READYSTATE_INTERACTIVE); return; }
diff --git a/dlls/mshtml/nsevents.c b/dlls/mshtml/nsevents.c index aa87442..096dcb3 100644 --- a/dlls/mshtml/nsevents.c +++ b/dlls/mshtml/nsevents.c @@ -123,7 +123,7 @@ static nsresult NSAPI handle_blur(nsIDOMEventListener *iface, nsIDOMEvent *event
TRACE("(%p)\n", doc);
- if(!doc) + if(!doc || !doc->basedoc.doc_obj) return NS_ERROR_FAILURE; doc_obj = doc->basedoc.doc_obj;
@@ -195,6 +195,9 @@ static nsresult NSAPI handle_load(nsIDOMEventListener *iface, nsIDOMEvent *event if(doc_obj->usermode == EDITMODE) handle_edit_load(&doc_obj->basedoc);
+ if(doc->basedoc.window->readystate != READYSTATE_COMPLETE) + set_ready_state(doc->basedoc.window, READYSTATE_COMPLETE); + if(!doc->nsdoc) { ERR("NULL nsdoc\n"); return NS_ERROR_FAILURE; diff --git a/dlls/mshtml/olecmd.c b/dlls/mshtml/olecmd.c index bd3b162..b54f064 100644 --- a/dlls/mshtml/olecmd.c +++ b/dlls/mshtml/olecmd.c @@ -555,7 +555,7 @@ static HRESULT exec_editmode(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, if(This->doc_obj->frame) IOleInPlaceFrame_SetStatusText(This->doc_obj->frame, NULL);
- This->doc_obj->readystate = READYSTATE_UNINITIALIZED; + This->window->readystate = READYSTATE_UNINITIALIZED;
if(This->doc_obj->client) { IOleCommandTarget *cmdtrg; diff --git a/dlls/mshtml/persist.c b/dlls/mshtml/persist.c index ec2c830..805d7f0 100644 --- a/dlls/mshtml/persist.c +++ b/dlls/mshtml/persist.c @@ -275,7 +275,7 @@ static HRESULT set_moniker(HTMLDocument *This, IMoniker *mon, IBindCtx *pibc, BO
void set_ready_state(HTMLWindow *window, READYSTATE readystate) { - window->doc_obj->readystate = readystate; + window->readystate = readystate; if(window->doc_obj->basedoc.window == window) call_property_onchanged(&window->doc_obj->basedoc.cp_propnotif, DISPID_READYSTATE); }