Per Johansson : winemenubuilder: Use start. exe to open URLs to respect URL handlers in registry.
Alexandre Julliard
julliard at winehq.org
Tue Aug 23 12:44:56 CDT 2011
Module: wine
Branch: master
Commit: 1a3b85a5bda240ef96a678781ef1a98e595932dd
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1a3b85a5bda240ef96a678781ef1a98e595932dd
Author: Per Johansson <per at morth.org>
Date: Thu Aug 11 20:21:25 2011 +0200
winemenubuilder: Use start.exe to open URLs to respect URL handlers in registry.
---
programs/winemenubuilder/winemenubuilder.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/programs/winemenubuilder/winemenubuilder.c b/programs/winemenubuilder/winemenubuilder.c
index 6d627cb..e6dc504 100644
--- a/programs/winemenubuilder/winemenubuilder.c
+++ b/programs/winemenubuilder/winemenubuilder.c
@@ -2962,6 +2962,7 @@ static BOOL InvokeShellLinkerForURL( IUniformResourceLocatorW *url, LPCWSTR link
IPropertyStorage *pPropStg;
PROPSPEC ps[2];
PROPVARIANT pv[2];
+ char *start_path = NULL;
if ( !link )
{
@@ -3004,6 +3005,13 @@ static BOOL InvokeShellLinkerForURL( IUniformResourceLocatorW *url, LPCWSTR link
goto cleanup;
}
+ start_path = get_start_exe_path();
+ if (start_path == NULL)
+ {
+ WINE_ERR("out of memory\n");
+ goto cleanup;
+ }
+
ps[0].ulKind = PRSPEC_PROPID;
ps[0].u.propid = PID_IS_ICONFILE;
ps[1].ulKind = PRSPEC_PROPID;
@@ -3063,14 +3071,14 @@ static BOOL InvokeShellLinkerForURL( IUniformResourceLocatorW *url, LPCWSTR link
location = heap_printf("%s/%s.desktop", xdg_desktop_dir, lastEntry);
if (location)
{
- r = !write_desktop_entry(NULL, location, lastEntry, "winebrowser", escaped_urlPath, NULL, NULL, icon_name);
+ r = !write_desktop_entry(NULL, location, lastEntry, start_path, escaped_urlPath, NULL, NULL, icon_name);
if (r == 0)
chmod(location, 0755);
HeapFree(GetProcessHeap(), 0, location);
}
}
else
- r = !write_menu_entry(unix_link, link_name, "winebrowser", escaped_urlPath, NULL, NULL, icon_name);
+ r = !write_menu_entry(unix_link, link_name, start_path, escaped_urlPath, NULL, NULL, icon_name);
ret = (r != 0);
ReleaseSemaphore(hSem, 1, NULL);
More information about the wine-cvs
mailing list