From 4144847aa59aa71b2c26bc05af2b0a63fb4d3f4b Mon Sep 17 00:00:00 2001 From: Hugh McMaster Date: Wed, 31 May 2017 13:07:15 +0000 Subject: [PATCH] regedit: Update handling of the 'Delete' menu item. Signed-off-by: Hugh McMaster Signed-off-by: Alexandre Julliard --- programs/regedit/framewnd.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/programs/regedit/framewnd.c b/programs/regedit/framewnd.c index 3fd048b682f..f63b1e1fd22 100644 --- a/programs/regedit/framewnd.c +++ b/programs/regedit/framewnd.c @@ -132,6 +132,25 @@ update: SetMenuItemInfoW(hMenu, ID_TREE_EXPAND_COLLAPSE, FALSE, &info); } +static void update_delete_item(HMENU hMenu, WCHAR *keyName) +{ + unsigned int state = MF_ENABLED; + + if (!g_pChildWnd->nFocusPanel) + { + if (!keyName || !*keyName) + state = MF_GRAYED; + } + else + { + if (SendMessageW(g_pChildWnd->hListWnd, LVM_GETNEXTITEM, -1, + MAKELPARAM(LVIS_FOCUSED | LVIS_SELECTED, 0)) == -1) + state = MF_GRAYED; + } + + EnableMenuItem(hMenu, ID_EDIT_DELETE, state | MF_BYCOMMAND); +} + static void UpdateMenuItems(HMENU hMenu) { HWND hwndTV = g_pChildWnd->hTreeWnd; BOOL bAllowEdit = FALSE; @@ -147,7 +166,7 @@ static void UpdateMenuItems(HMENU hMenu) { update_expand_or_collapse_item(hwndTV, selection, hMenu); EnableMenuItem(hMenu, ID_EDIT_MODIFY, (bAllowEdit ? MF_ENABLED : MF_GRAYED) | MF_BYCOMMAND); - EnableMenuItem(hMenu, ID_EDIT_DELETE, (bAllowEdit ? MF_ENABLED : MF_GRAYED) | MF_BYCOMMAND); + update_delete_item(hMenu, keyName); EnableMenuItem(hMenu, ID_EDIT_RENAME, (bAllowEdit ? MF_ENABLED : MF_GRAYED) | MF_BYCOMMAND); EnableMenuItem(hMenu, ID_FAVORITES_ADDTOFAVORITES, (hRootKey ? MF_ENABLED : MF_GRAYED) | MF_BYCOMMAND); EnableMenuItem(hMenu, ID_FAVORITES_REMOVEFAVORITE,