mirror of
https://github.com/reactos/reactos.git
synced 2025-04-22 05:00:27 +00:00
[BROWSEUI]
[SHELL32] * Fix accelerator handling. * Disallow accelerators if renaming. svn path=/branches/shell-experiments/; revision=63905
This commit is contained in:
parent
8535491b89
commit
9ea7e65b5b
2 changed files with 12 additions and 15 deletions
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue