Module: wine Branch: master Commit: 2e25a43f3fb6230460447bae6fb5db2edbd4a42f URL: https://source.winehq.org/git/wine.git/?a=commit;h=2e25a43f3fb6230460447bae6...
Author: Fabian Maurer dark.shadow4@web.de Date: Fri Sep 14 22:01:40 2018 +0200
shell32/brsfolder: Add shortcut to rename folders with the F2 key.
Signed-off-by: Fabian Maurer dark.shadow4@web.de Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/shell32/brsfolder.c | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-)
diff --git a/dlls/shell32/brsfolder.c b/dlls/shell32/brsfolder.c index daddf1e..91936bd 100644 --- a/dlls/shell32/brsfolder.c +++ b/dlls/shell32/brsfolder.c @@ -613,6 +613,32 @@ static LRESULT BrsFolder_Treeview_Rename(browse_info *info, NMTVDISPINFOW *pnmtv return 0; }
+static HRESULT BrsFolder_Rename(browse_info *info, HTREEITEM rename) +{ + SendMessageW(info->hwndTreeView, TVM_SELECTITEM, TVGN_CARET, (LPARAM)rename); + SendMessageW(info->hwndTreeView, TVM_EDITLABELW, 0, (LPARAM)rename); + return S_OK; +} + +static LRESULT BrsFolder_Treeview_Keydown(browse_info *info, LPNMTVKEYDOWN keydown) +{ + HTREEITEM selected_item; + + /* Old dialog doesn't support those advanced features */ + if (!(info->lpBrowseInfo->ulFlags & BIF_NEWDIALOGSTYLE)) + return 0; + + selected_item = (HTREEITEM)SendMessageW(info->hwndTreeView, TVM_GETNEXTITEM, TVGN_CARET, 0); + + switch (keydown->wVKey) + { + case VK_F2: + BrsFolder_Rename(info, selected_item); + break; + } + return 0; +} + static LRESULT BrsFolder_OnNotify( browse_info *info, UINT CtlID, LPNMHDR lpnmh ) { NMTREEVIEWW *pnmtv = (NMTREEVIEWW *)lpnmh; @@ -640,6 +666,9 @@ static LRESULT BrsFolder_OnNotify( browse_info *info, UINT CtlID, LPNMHDR lpnmh case TVN_ENDLABELEDITW: return BrsFolder_Treeview_Rename( info, (LPNMTVDISPINFOW)pnmtv );
+ case TVN_KEYDOWN: + return BrsFolder_Treeview_Keydown( info, (LPNMTVKEYDOWN)pnmtv ); + default: WARN("unhandled (%d)\n", pnmtv->hdr.code); break; @@ -721,13 +750,6 @@ static BOOL BrsFolder_OnCreate( HWND hWnd, browse_info *info ) return TRUE; }
-static HRESULT BrsFolder_Rename(browse_info *info, HTREEITEM rename) -{ - SendMessageW(info->hwndTreeView, TVM_SELECTITEM, TVGN_CARET, (LPARAM)rename); - SendMessageW(info->hwndTreeView, TVM_EDITLABELW, 0, (LPARAM)rename); - return S_OK; -} - static HRESULT BrsFolder_NewFolder(browse_info *info) { DWORD flags = BrowseFlagsToSHCONTF(info->lpBrowseInfo->ulFlags);