Jacek Caban : mshtml: Open document in a new window in IHlinkTarget:: Navigate if the document is not embedded.

Alexandre Julliard julliard at winehq.org
Tue Jan 10 13:11:20 CST 2012


Module: wine
Branch: master
Commit: 7bbe0d5ca6a9005d0c781d671c06a74fe9f2b0d4
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7bbe0d5ca6a9005d0c781d671c06a74fe9f2b0d4

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Jan 10 17:07:36 2012 +0100

mshtml: Open document in a new window in IHlinkTarget::Navigate if the document is not embedded.

---

 dlls/mshtml/hlink.c    |    4 ++++
 dlls/mshtml/navigate.c |    5 ++++-
 2 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/dlls/mshtml/hlink.c b/dlls/mshtml/hlink.c
index fd836de..4e63498 100644
--- a/dlls/mshtml/hlink.c
+++ b/dlls/mshtml/hlink.c
@@ -28,6 +28,7 @@
 #include "wine/debug.h"
 
 #include "mshtml_private.h"
+#include "binding.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
 
@@ -83,6 +84,9 @@ static HRESULT WINAPI HlinkTarget_Navigate(IHlinkTarget *iface, DWORD grfHLNF, L
     if(pwzJumpLocation)
         FIXME("JumpLocation not supported\n");
 
+    if(!This->doc_obj->client)
+        return navigate_new_window(This->window, This->window->uri, NULL, NULL);
+
     return IOleObject_DoVerb(&This->IOleObject_iface, OLEIVERB_SHOW, NULL, NULL, -1, NULL, NULL);
 }
 
diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index ea1f532..9b650f4 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -2030,7 +2030,10 @@ HRESULT navigate_new_window(HTMLWindow *window, IUri *uri, const WCHAR *name, IH
     IWebBrowser2_put_Visible(web_browser, VARIANT_TRUE);
     IWebBrowser2_Release(web_browser);
 
-    *ret = new_window;
+    if(ret)
+        *ret = new_window;
+    else
+        IHTMLWindow2_Release(new_window);
     return S_OK;
 }
 




More information about the wine-cvs mailing list