Jacek Caban : mshtml: Move do_ns_command to HTMLDocumentNode.

Alexandre Julliard julliard at winehq.org
Tue Mar 12 16:56:16 CDT 2019


Module: wine
Branch: master
Commit: b384f5b3a4ad58f059a8dfbd8c89af843bf22a2f
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=b384f5b3a4ad58f059a8dfbd8c89af843bf22a2f

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Mar 12 16:10:56 2019 +0100

mshtml: Move do_ns_command to HTMLDocumentNode.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mshtml/editor.c         | 26 +++++++++++---------------
 dlls/mshtml/mshtml_private.h |  2 +-
 dlls/mshtml/olecmd.c         | 23 +++++++++++++----------
 3 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/dlls/mshtml/editor.c b/dlls/mshtml/editor.c
index 5f59284..2c9e01f 100644
--- a/dlls/mshtml/editor.c
+++ b/dlls/mshtml/editor.c
@@ -174,7 +174,7 @@ static void set_ns_align(HTMLDocument *This, const char *align_str)
     nsparam = create_nscommand_params();
     nsICommandParams_SetCStringValue(nsparam, NSSTATE_ATTRIBUTE, align_str);
 
-    do_ns_command(This, NSCMD_ALIGN, nsparam);
+    do_ns_command(This->doc_node, NSCMD_ALIGN, nsparam);
 
     nsICommandParams_Release(nsparam);
 }
@@ -506,7 +506,7 @@ static void set_ns_fontname(HTMLDocument *This, const char *fontname)
     nsICommandParams *nsparam = create_nscommand_params();
 
     nsICommandParams_SetCStringValue(nsparam, NSSTATE_ATTRIBUTE, fontname);
-    do_ns_command(This, NSCMD_FONTFACE, nsparam);
+    do_ns_command(This->doc_node, NSCMD_FONTFACE, nsparam);
     nsICommandParams_Release(nsparam);
 }
 
@@ -591,7 +591,7 @@ static HRESULT exec_forecolor(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in,
                     V_I4(in)&0xff, (V_I4(in)>>8)&0xff, (V_I4(in)>>16)&0xff);
 
             nsICommandParams_SetCStringValue(nsparam, NSSTATE_ATTRIBUTE, color_str);
-            do_ns_command(This, NSCMD_FONTCOLOR, nsparam);
+            do_ns_command(This->doc_node, NSCMD_FONTCOLOR, nsparam);
 
             nsICommandParams_Release(nsparam);
         }else {
@@ -657,9 +657,7 @@ static HRESULT exec_bold(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, VARI
     if(in || out)
         FIXME("unsupported args\n");
 
-    if(This->doc_obj->nscontainer)
-        do_ns_command(This, NSCMD_BOLD, NULL);
-
+    do_ns_command(This->doc_node, NSCMD_BOLD, NULL);
     update_doc(This->doc_obj, UPDATE_UI);
     return S_OK;
 }
@@ -671,9 +669,7 @@ static HRESULT exec_italic(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, VA
     if(in || out)
         FIXME("unsupported args\n");
 
-    if(This->doc_obj->nscontainer)
-        do_ns_command(This, NSCMD_ITALIC, NULL);
-
+    do_ns_command(This->doc_node, NSCMD_ITALIC, NULL);
     update_doc(This->doc_obj, UPDATE_UI);
     return S_OK;
 }
@@ -748,7 +744,7 @@ static HRESULT exec_underline(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in,
     if(in || out)
         FIXME("unsupported args\n");
 
-    do_ns_command(This, NSCMD_UNDERLINE, NULL);
+    do_ns_command(This->doc_node, NSCMD_UNDERLINE, NULL);
     update_doc(This->doc_obj, UPDATE_UI);
     return S_OK;
 }
@@ -760,7 +756,7 @@ static HRESULT exec_horizontalline(HTMLDocument *This, DWORD cmdexecopt, VARIANT
     if(in || out)
         FIXME("unsupported args\n");
 
-    do_ns_command(This, NSCMD_INSERTHR, NULL);
+    do_ns_command(This->doc_node, NSCMD_INSERTHR, NULL);
     update_doc(This->doc_obj, UPDATE_UI);
     return S_OK;
 }
@@ -772,7 +768,7 @@ static HRESULT exec_orderlist(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in,
     if(in || out)
         FIXME("unsupported args\n");
 
-    do_ns_command(This, NSCMD_OL, NULL);
+    do_ns_command(This->doc_node, NSCMD_OL, NULL);
     update_doc(This->doc_obj, UPDATE_UI);
     return S_OK;
 }
@@ -784,7 +780,7 @@ static HRESULT exec_unorderlist(HTMLDocument *This, DWORD cmdexecopt, VARIANT *i
     if(in || out)
         FIXME("unsupported args\n");
 
-    do_ns_command(This, NSCMD_UL, NULL);
+    do_ns_command(This->doc_node, NSCMD_UL, NULL);
     update_doc(This->doc_obj, UPDATE_UI);
     return S_OK;
 }
@@ -796,7 +792,7 @@ static HRESULT exec_indent(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, VA
     if(in || out)
         FIXME("unsupported args\n");
 
-    do_ns_command(This, NSCMD_INDENT, NULL);
+    do_ns_command(This->doc_node, NSCMD_INDENT, NULL);
     update_doc(This->doc_obj, UPDATE_UI);
     return S_OK;
 }
@@ -808,7 +804,7 @@ static HRESULT exec_outdent(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, V
     if(in || out)
         FIXME("unsupported args\n");
 
-    do_ns_command(This, NSCMD_OUTDENT, NULL);
+    do_ns_command(This->doc_node, NSCMD_OUTDENT, NULL);
     update_doc(This->doc_obj, UPDATE_UI);
     return S_OK;
 }
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 9933a41..7bf3cb6 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -1121,7 +1121,7 @@ typedef struct {
 
 extern const cmdtable_t editmode_cmds[] DECLSPEC_HIDDEN;
 
-void do_ns_command(HTMLDocument*,const char*,nsICommandParams*) DECLSPEC_HIDDEN;
+void do_ns_command(HTMLDocumentNode*,const char*,nsICommandParams*) DECLSPEC_HIDDEN;
 
 /* timer */
 #define UPDATE_UI       0x0001
diff --git a/dlls/mshtml/olecmd.c b/dlls/mshtml/olecmd.c
index 9c4aa67..8920a2f 100644
--- a/dlls/mshtml/olecmd.c
+++ b/dlls/mshtml/olecmd.c
@@ -40,23 +40,23 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
 #define NSCMD_COPY "cmd_copy"
 #define NSCMD_SELECTALL           "cmd_selectAll"
 
-void do_ns_command(HTMLDocument *This, const char *cmd, nsICommandParams *nsparam)
+void do_ns_command(HTMLDocumentNode *doc, const char *cmd, nsICommandParams *nsparam)
 {
     nsICommandManager *cmdmgr;
     nsresult nsres;
 
-    TRACE("(%p)\n", This);
+    TRACE("(%p)\n", doc);
 
-    if(!This->doc_obj || !This->doc_obj->nscontainer)
+    if(!doc->browser || !doc->window)
         return;
 
-    nsres = get_nsinterface((nsISupports*)This->doc_obj->nscontainer->webbrowser, &IID_nsICommandManager, (void**)&cmdmgr);
+    nsres = get_nsinterface((nsISupports*)doc->browser->webbrowser, &IID_nsICommandManager, (void**)&cmdmgr);
     if(NS_FAILED(nsres)) {
         ERR("Could not get nsICommandManager: %08x\n", nsres);
         return;
     }
 
-    nsres = nsICommandManager_DoCommand(cmdmgr, cmd, nsparam, This->window->window_proxy);
+    nsres = nsICommandManager_DoCommand(cmdmgr, cmd, nsparam, doc->window->base.outer_window->window_proxy);
     if(NS_FAILED(nsres))
         ERR("DoCommand(%s) failed: %08x\n", debugstr_a(cmd), nsres);
 
@@ -355,7 +355,7 @@ static HRESULT exec_copy(HTMLDocument *This, DWORD nCmdexecopt, VARIANT *pvaIn,
 {
     TRACE("(%p)->(%d %s %p)\n", This, nCmdexecopt, debugstr_variant(pvaIn), pvaOut);
 
-    do_ns_command(This, NSCMD_COPY, NULL);
+    do_ns_command(This->doc_node, NSCMD_COPY, NULL);
     return S_OK;
 }
 
@@ -385,15 +385,18 @@ static HRESULT exec_rendo(HTMLDocument *This, DWORD nCmdexecopt, VARIANT *pvaIn,
 
 static HRESULT exec_select_all(HTMLDocument *This, DWORD nCmdexecopt, VARIANT *in, VARIANT *out)
 {
+    HTMLDocumentNode *doc = This->doc_node;
+
     TRACE("(%p)\n", This);
 
     if(in || out)
         FIXME("unsupported args\n");
 
-    if(This->doc_obj->nscontainer)
-        do_ns_command(This, NSCMD_SELECTALL, NULL);
+    if(!doc->browser)
+        return E_UNEXPECTED;
 
-    update_doc(This->doc_obj, UPDATE_UI);
+    do_ns_command(doc, NSCMD_SELECTALL, NULL);
+    update_doc(doc->browser->doc, UPDATE_UI);
     return S_OK;
 }
 
@@ -586,7 +589,7 @@ static HRESULT exec_mshtml_copy(HTMLDocument *This, DWORD cmdexecopt, VARIANT *i
     if(This->doc_node->browser->usermode == EDITMODE)
         return editor_exec_copy(This, cmdexecopt, in, out);
 
-    do_ns_command(This, NSCMD_COPY, NULL);
+    do_ns_command(This->doc_node, NSCMD_COPY, NULL);
     return S_OK;
 }
 




More information about the wine-cvs mailing list