[BROWSEUI]

[SHELL32]
* Fix accelerator handling.
* Disallow accelerators if renaming.

svn path=/branches/shell-experiments/; revision=63905
This commit is contained in:
David Quintana 2014-08-19 21:30:04 +00:00
parent 8535491b89
commit 9ea7e65b5b
2 changed files with 12 additions and 15 deletions

View file

@ -2563,13 +2563,7 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::v_MayTranslateAccelerator(MSG *pmsg)
return S_OK;
}
if (fCurrentShellView->TranslateAcceleratorW(pmsg) != S_OK)
{
if (TranslateAcceleratorSB(pmsg, 0) != S_OK)
return S_FALSE;
return S_OK;
}
return S_OK;
return fCurrentShellView->TranslateAcceleratorW(pmsg);
}
HRESULT STDMETHODCALLTYPE CShellBrowser::_GetBorderDWHelper(IUnknown *punkSrc, LPRECT lprectBorder, BOOL bUseHmonitor)

View file

@ -105,6 +105,8 @@ class CDefView :
POINT m_ptLastMousePos; /* Mouse position at last DragOver call */
//
CComPtr<IContextMenu> m_pCM;
BOOL m_isEditing;
public:
CDefView();
~CDefView();
@ -173,7 +175,6 @@ class CDefView :
virtual HRESULT STDMETHODCALLTYPE GetArrangeParam(LPARAM *sort);
virtual HRESULT STDMETHODCALLTYPE ArrangeGrid();
virtual HRESULT STDMETHODCALLTYPE AutoArrange();
virtual HRESULT STDMETHODCALLTYPE IShellFolderView_GetAutoArrange();
virtual HRESULT STDMETHODCALLTYPE AddObject(PITEMID_CHILD pidl, UINT *item);
virtual HRESULT STDMETHODCALLTYPE GetObject(PITEMID_CHILD *pidl, UINT item);
virtual HRESULT STDMETHODCALLTYPE RemoveObject(PITEMID_CHILD pidl, UINT *item);
@ -376,6 +377,7 @@ CDefView::CDefView()
m_cScrollDelay = 0;
m_ptLastMousePos.x = 0;
m_ptLastMousePos.y = 0;
m_isEditing = FALSE;
}
CDefView::~CDefView()
@ -1795,6 +1797,7 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
m_pSFParent->GetAttributesOf(1, (LPCITEMIDLIST*)&pidl, &dwAttr);
if (SFGAO_CANRENAME & dwAttr)
{
m_isEditing = TRUE;
return FALSE;
}
return TRUE;
@ -1803,6 +1806,9 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
case LVN_ENDLABELEDITW:
{
TRACE("-- LVN_ENDLABELEDITW %p\n", this);
m_isEditing = FALSE;
if (lpdi->item.pszText)
{
HRESULT hr;
@ -1991,6 +1997,9 @@ HRESULT WINAPI CDefView::ContextSensitiveHelp(BOOL fEnterMode)
*/
HRESULT WINAPI CDefView::TranslateAccelerator(LPMSG lpmsg)
{
if (m_isEditing)
return S_FALSE;
if (lpmsg->message >= WM_KEYFIRST && lpmsg->message <= WM_KEYLAST)
{
if (::TranslateAcceleratorW(m_hWnd, m_hAccel, lpmsg) != 0)
@ -1999,7 +2008,7 @@ HRESULT WINAPI CDefView::TranslateAccelerator(LPMSG lpmsg)
TRACE("-- key=0x04%lx\n", lpmsg->wParam) ;
}
return S_FALSE; /* not handled */
return m_pShellBrowser->TranslateAcceleratorSB(lpmsg, 0);
}
HRESULT WINAPI CDefView::EnableModeless(BOOL fEnable)
@ -2454,12 +2463,6 @@ HRESULT STDMETHODCALLTYPE CDefView::AutoArrange()
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CDefView::IShellFolderView_GetAutoArrange()
{
TRACE("(%p)\n", this);
return GetAutoArrange();
}
HRESULT STDMETHODCALLTYPE CDefView::AddObject(PITEMID_CHILD pidl, UINT *item)
{
FIXME("(%p)->(%p %p) stub\n", this, pidl, item);