Commit b332c1a6 authored by Hugh McMaster's avatar Hugh McMaster Committed by Alexandre Julliard

regedit: Update handling of the 'Modify' menu item.

parent 0a2e4893
...@@ -132,7 +132,17 @@ update: ...@@ -132,7 +132,17 @@ update:
SetMenuItemInfoW(hMenu, ID_TREE_EXPAND_COLLAPSE, FALSE, &info); SetMenuItemInfoW(hMenu, ID_TREE_EXPAND_COLLAPSE, FALSE, &info);
} }
static void update_delete_and_rename_items(HMENU hMenu, WCHAR *keyName) static void update_modify_items(HMENU hMenu, int index)
{
unsigned int state = MF_ENABLED;
if (!g_pChildWnd->nFocusPanel || index == -1)
state = MF_GRAYED;
EnableMenuItem(hMenu, ID_EDIT_MODIFY, state | MF_BYCOMMAND);
}
static void update_delete_and_rename_items(HMENU hMenu, WCHAR *keyName, int index)
{ {
unsigned int state_d = MF_ENABLED, state_r = MF_ENABLED; unsigned int state_d = MF_ENABLED, state_r = MF_ENABLED;
...@@ -141,13 +151,10 @@ static void update_delete_and_rename_items(HMENU hMenu, WCHAR *keyName) ...@@ -141,13 +151,10 @@ static void update_delete_and_rename_items(HMENU hMenu, WCHAR *keyName)
if (!keyName || !*keyName) if (!keyName || !*keyName)
state_d = state_r = MF_GRAYED; state_d = state_r = MF_GRAYED;
} }
else else if (index < 1)
{ {
int index = SendMessageW(g_pChildWnd->hListWnd, LVM_GETNEXTITEM, -1, state_r = MF_GRAYED;
MAKELPARAM(LVIS_FOCUSED | LVIS_SELECTED, 0));
if (index == -1) state_d = MF_GRAYED; if (index == -1) state_d = MF_GRAYED;
if (index < 1) state_r = MF_GRAYED;
} }
EnableMenuItem(hMenu, ID_EDIT_DELETE, state_d | MF_BYCOMMAND); EnableMenuItem(hMenu, ID_EDIT_DELETE, state_d | MF_BYCOMMAND);
...@@ -170,20 +177,19 @@ static void update_new_items_and_copy_keyname(HMENU hMenu, WCHAR *keyName) ...@@ -170,20 +177,19 @@ static void update_new_items_and_copy_keyname(HMENU hMenu, WCHAR *keyName)
static void UpdateMenuItems(HMENU hMenu) { static void UpdateMenuItems(HMENU hMenu) {
HWND hwndTV = g_pChildWnd->hTreeWnd; HWND hwndTV = g_pChildWnd->hTreeWnd;
BOOL bAllowEdit = FALSE;
HKEY hRootKey = NULL; HKEY hRootKey = NULL;
LPWSTR keyName; LPWSTR keyName;
HTREEITEM selection; HTREEITEM selection;
int index;
selection = (HTREEITEM)SendMessageW(hwndTV, TVM_GETNEXTITEM, TVGN_CARET, 0); selection = (HTREEITEM)SendMessageW(hwndTV, TVM_GETNEXTITEM, TVGN_CARET, 0);
keyName = GetItemPath(hwndTV, selection, &hRootKey); keyName = GetItemPath(hwndTV, selection, &hRootKey);
if (GetFocus() != hwndTV || (keyName && *keyName)) { /* can't modify root keys, but allow for their values */ index = SendMessageW(g_pChildWnd->hListWnd, LVM_GETNEXTITEM, -1,
bAllowEdit = TRUE; MAKELPARAM(LVIS_FOCUSED | LVIS_SELECTED, 0));
}
update_expand_or_collapse_item(hwndTV, selection, hMenu); update_expand_or_collapse_item(hwndTV, selection, hMenu);
EnableMenuItem(hMenu, ID_EDIT_MODIFY, (bAllowEdit ? MF_ENABLED : MF_GRAYED) | MF_BYCOMMAND); update_modify_items(hMenu, index);
update_delete_and_rename_items(hMenu, keyName); update_delete_and_rename_items(hMenu, keyName, index);
update_new_items_and_copy_keyname(hMenu, keyName); update_new_items_and_copy_keyname(hMenu, keyName);
EnableMenuItem(hMenu, ID_FAVORITES_ADDTOFAVORITES, (hRootKey ? MF_ENABLED : MF_GRAYED) | MF_BYCOMMAND); EnableMenuItem(hMenu, ID_FAVORITES_ADDTOFAVORITES, (hRootKey ? MF_ENABLED : MF_GRAYED) | MF_BYCOMMAND);
EnableMenuItem(hMenu, ID_FAVORITES_REMOVEFAVORITE, EnableMenuItem(hMenu, ID_FAVORITES_REMOVEFAVORITE,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment