Hugh McMaster : regedit: Update handling of the 'Modify' menu item.
Alexandre Julliard
julliard at winehq.org
Fri Jun 2 17:03:28 CDT 2017
Module: wine
Branch: master
Commit: b332c1a6d59f4efa4a306b3aa1d9b6ef0e6de1b3
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b332c1a6d59f4efa4a306b3aa1d9b6ef0e6de1b3
Author: Hugh McMaster <hugh.mcmaster at outlook.com>
Date: Fri Jun 2 10:57:58 2017 +0000
regedit: Update handling of the 'Modify' menu item.
Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
programs/regedit/framewnd.c | 30 ++++++++++++++++++------------
1 file changed, 18 insertions(+), 12 deletions(-)
diff --git a/programs/regedit/framewnd.c b/programs/regedit/framewnd.c
index c46dee3..cd7dad0 100644
--- a/programs/regedit/framewnd.c
+++ b/programs/regedit/framewnd.c
@@ -132,7 +132,17 @@ update:
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;
@@ -141,13 +151,10 @@ static void update_delete_and_rename_items(HMENU hMenu, WCHAR *keyName)
if (!keyName || !*keyName)
state_d = state_r = MF_GRAYED;
}
- else
+ else if (index < 1)
{
- int index = SendMessageW(g_pChildWnd->hListWnd, LVM_GETNEXTITEM, -1,
- MAKELPARAM(LVIS_FOCUSED | LVIS_SELECTED, 0));
-
+ state_r = 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);
@@ -170,20 +177,19 @@ static void update_new_items_and_copy_keyname(HMENU hMenu, WCHAR *keyName)
static void UpdateMenuItems(HMENU hMenu) {
HWND hwndTV = g_pChildWnd->hTreeWnd;
- BOOL bAllowEdit = FALSE;
HKEY hRootKey = NULL;
LPWSTR keyName;
HTREEITEM selection;
+ int index;
selection = (HTREEITEM)SendMessageW(hwndTV, TVM_GETNEXTITEM, TVGN_CARET, 0);
keyName = GetItemPath(hwndTV, selection, &hRootKey);
- if (GetFocus() != hwndTV || (keyName && *keyName)) { /* can't modify root keys, but allow for their values */
- bAllowEdit = TRUE;
- }
+ index = SendMessageW(g_pChildWnd->hListWnd, LVM_GETNEXTITEM, -1,
+ MAKELPARAM(LVIS_FOCUSED | LVIS_SELECTED, 0));
update_expand_or_collapse_item(hwndTV, selection, hMenu);
- EnableMenuItem(hMenu, ID_EDIT_MODIFY, (bAllowEdit ? MF_ENABLED : MF_GRAYED) | MF_BYCOMMAND);
- update_delete_and_rename_items(hMenu, keyName);
+ update_modify_items(hMenu, index);
+ update_delete_and_rename_items(hMenu, keyName, index);
update_new_items_and_copy_keyname(hMenu, keyName);
EnableMenuItem(hMenu, ID_FAVORITES_ADDTOFAVORITES, (hRootKey ? MF_ENABLED : MF_GRAYED) | MF_BYCOMMAND);
EnableMenuItem(hMenu, ID_FAVORITES_REMOVEFAVORITE,
More information about the wine-cvs
mailing list