Jacek Caban : mshtml: Moved undomgr to HTMLDocumentObj.
Alexandre Julliard
julliard at winehq.org
Thu Sep 17 13:52:26 CDT 2009
Module: wine
Branch: master
Commit: aadd0774dbd856ac38af0288113964d434ade666
URL: http://source.winehq.org/git/wine.git/?a=commit;h=aadd0774dbd856ac38af0288113964d434ade666
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Sep 16 22:10:30 2009 +0200
mshtml: Moved undomgr to HTMLDocumentObj.
---
dlls/mshtml/htmldoc.c | 5 ++---
dlls/mshtml/mshtml_private.h | 4 ++--
dlls/mshtml/service.c | 10 ++++------
3 files changed, 8 insertions(+), 11 deletions(-)
diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index b37ff72..ecff6f2 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -1764,9 +1764,6 @@ static void destroy_htmldoc(HTMLDocument *This)
{
remove_doc_tasks(This);
- if(This->undomgr)
- IOleUndoManager_Release(This->undomgr);
-
set_document_bscallback(This, NULL);
set_current_mon(This, NULL);
@@ -1899,6 +1896,8 @@ static ULONG HTMLDocumentObj_Release(HTMLDocument *base)
IOleInPlaceObjectWindowless_InPlaceDeactivate(INPLACEWIN(&This->basedoc));
if(This->ipsite)
IOleDocumentView_SetInPlaceSite(DOCVIEW(&This->basedoc), NULL);
+ if(This->undomgr)
+ IOleUndoManager_Release(This->undomgr);
destroy_htmldoc(&This->basedoc);
if(This->basedoc.nsdoc)
remove_mutation_observer(This->nscontainer, This->basedoc.nsdoc);
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 7db3b8b..d676108 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -284,8 +284,6 @@ struct HTMLDocument {
HTMLWindow *window;
nsIDOMHTMLDocument *nsdoc;
- IOleUndoManager *undomgr;
-
nsChannelBSC *bscallback;
IMoniker *mon;
LPOLESTR url;
@@ -354,6 +352,8 @@ struct HTMLDocumentObj {
IOleInPlaceSite *ipsite;
IOleInPlaceFrame *frame;
IOleInPlaceUIWindow *ip_window;
+
+ IOleUndoManager *undomgr;
};
typedef struct {
diff --git a/dlls/mshtml/service.c b/dlls/mshtml/service.c
index f2d619e..d120cf4 100644
--- a/dlls/mshtml/service.c
+++ b/dlls/mshtml/service.c
@@ -240,11 +240,11 @@ static HRESULT WINAPI ServiceProvider_QueryService(IServiceProvider *iface, REFG
if(IsEqualGUID(&IID_IOleUndoManager, riid)) {
TRACE("(%p)->(IID_IOleUndoManager %p)\n", This, ppv);
- if(!This->undomgr)
- This->undomgr = create_undomgr();
+ if(!This->doc_obj->undomgr)
+ This->doc_obj->undomgr = create_undomgr();
- IOleUndoManager_AddRef(This->undomgr);
- *ppv = This->undomgr;
+ IOleUndoManager_AddRef(This->doc_obj->undomgr);
+ *ppv = This->doc_obj->undomgr;
return S_OK;
}
@@ -263,6 +263,4 @@ static const IServiceProviderVtbl ServiceProviderVtbl = {
void HTMLDocument_Service_Init(HTMLDocument *This)
{
This->lpServiceProviderVtbl = &ServiceProviderVtbl;
-
- This->undomgr = NULL;
}
More information about the wine-cvs
mailing list