Module: wine Branch: master Commit: 775425b24bad6a3bea8353aaca0c206cd1476740 URL: http://source.winehq.org/git/wine.git/?a=commit;h=775425b24bad6a3bea8353aaca...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Jun 11 00:29:53 2007 +0200
mshtml: Added edit mode IDM_PASTE implementation.
---
dlls/mshtml/editor.c | 12 ++++++++++++ dlls/mshtml/mshtml_private.h | 1 + dlls/mshtml/olecmd.c | 7 ++++++- 3 files changed, 19 insertions(+), 1 deletions(-)
diff --git a/dlls/mshtml/editor.c b/dlls/mshtml/editor.c index 432f48c..4630cfb 100644 --- a/dlls/mshtml/editor.c +++ b/dlls/mshtml/editor.c @@ -53,6 +53,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml); #define NSCMD_MOVEPAGEUP "cmd_movePageUp" #define NSCMD_OL "cmd_ol" #define NSCMD_OUTDENT "cmd_outdent" +#define NSCMD_PASTE "cmd_paste" #define NSCMD_SELECTCHARNEXT "cmd_selectCharNext" #define NSCMD_SELECTCHARPREVIOUS "cmd_selectCharPrevious" #define NSCMD_SELECTLINENEXT "cmd_selectLineNext" @@ -945,6 +946,17 @@ HRESULT editor_exec_copy(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, VARI return S_OK; }
+HRESULT editor_exec_paste(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, VARIANT *out) +{ + update_doc(This, UPDATE_UI); + + if(!This->nscontainer) + return E_FAIL; + + do_ns_editor_command(This->nscontainer, NSCMD_PASTE); + return S_OK; +} + static HRESULT query_edit_status(HTMLDocument *This, OLECMD *cmd) { switch(cmd->cmdID) { diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index 33806f6..4c4ee4a 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -399,6 +399,7 @@ void init_editor(HTMLDocument*); void set_ns_editmode(NSContainer*); void handle_edit_event(HTMLDocument*,nsIDOMEvent*); HRESULT editor_exec_copy(HTMLDocument*,DWORD,VARIANT*,VARIANT*); +HRESULT editor_exec_paste(HTMLDocument*,DWORD,VARIANT*,VARIANT*);
extern DWORD mshtml_tls;
diff --git a/dlls/mshtml/olecmd.c b/dlls/mshtml/olecmd.c index 61deb68..e2b749c 100644 --- a/dlls/mshtml/olecmd.c +++ b/dlls/mshtml/olecmd.c @@ -500,7 +500,12 @@ static HRESULT query_mshtml_paste(HTMLDocument *This, OLECMD *cmd)
static HRESULT exec_mshtml_paste(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, VARIANT *out) { - FIXME("(%p)->(%08x %p %p)\n", This, cmdexecopt, in, out); + TRACE("(%p)->(%08x %p %p)\n", This, cmdexecopt, in, out); + + if(This->usermode == EDITMODE) + return editor_exec_paste(This, cmdexecopt, in, out); + + FIXME("Unimplemented in browse mode\n"); return E_NOTIMPL; }