From: Zebediah Figura zfigura@codeweavers.com
This reverts one of the changes included in d30dfd24d6ab2f52bb4f29aee59e75238c648fc4.
Relying on FCIDM_SHVIEW_OPEN snoops into the internals of IContextMenu for no good reason.
While I haven't tested whether ICommDlgBrowser::OnDefaultCommand() is triggered in this case, the documentation states that it is "called when a user double-clicks in the view or presses the ENTER key"; this is neither scenario.
Simply let the context menu call ShellExecuteEx(). --- dlls/shell32/shlview.c | 13 ------------- 1 file changed, 13 deletions(-)
diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c index bb1119355ab..abe13981df1 100644 --- a/dlls/shell32/shlview.c +++ b/dlls/shell32/shlview.c @@ -1055,24 +1055,11 @@ static void ShellView_DoContextMenu(IShellViewImpl * This, WORD x, WORD y, BOOL
if(uCommand > 0) { - TRACE("-- uCommand=%u\n", uCommand); - if (uCommand==FCIDM_SHVIEW_OPEN && IsInCommDlg(This)) - { - TRACE("-- dlg: OnDefaultCommand\n"); - if (OnDefaultCommand(This) != S_OK) - { - ShellView_OpenSelectedItems(This); - } - } - else - { - TRACE("-- explore -- invoke command\n"); ZeroMemory(&cmi, sizeof(cmi)); cmi.cbSize = sizeof(cmi); cmi.hwnd = This->hWndParent; /* this window has to answer CWM_GETISHELLBROWSER */ cmi.lpVerb = MAKEINTRESOURCEA(uCommand); IContextMenu_InvokeCommand(pContextMenu, &cmi); - } } DestroyMenu(hMenu); }