Lei Zhang : regedit: Pass VK_DELETE messages to Listview/ Treeview child windows.

Alexandre Julliard julliard at winehq.org
Thu Oct 9 07:43:10 CDT 2008


Module: wine
Branch: master
Commit: a4ed7a1003ad5a86d27a9a1ada57c0aa0e4ca34f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a4ed7a1003ad5a86d27a9a1ada57c0aa0e4ca34f

Author: Lei Zhang <thestig at google.com>
Date:   Wed Oct  8 14:39:31 2008 -0700

regedit: Pass VK_DELETE messages to Listview/Treeview child windows.

---

 programs/regedit/framewnd.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/programs/regedit/framewnd.c b/programs/regedit/framewnd.c
index ca836e2..a801703 100644
--- a/programs/regedit/framewnd.c
+++ b/programs/regedit/framewnd.c
@@ -681,7 +681,9 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
         break;
     }
     case ID_EDIT_DELETE:
-	if (GetFocus() == g_pChildWnd->hTreeWnd) {
+    {
+        HWND hWndDelete = GetFocus();
+        if (hWndDelete == g_pChildWnd->hTreeWnd) {
 	    WCHAR* keyPath = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
 	    if (keyPath == 0 || *keyPath == 0) {
 	        MessageBeep(MB_ICONHAND);
@@ -689,7 +691,7 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 		DeleteNode(g_pChildWnd->hTreeWnd, 0);
             }
             HeapFree(GetProcessHeap(), 0, keyPath);
-	} else if (GetFocus() == g_pChildWnd->hListWnd) {
+        } else if (hWndDelete == g_pChildWnd->hListWnd) {
         WCHAR* keyPath = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
         curIndex = ListView_GetNextItem(g_pChildWnd->hListWnd, -1, LVNI_SELECTED);
         while(curIndex != -1) {
@@ -713,8 +715,12 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
         }
         RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath, NULL);
         HeapFree(GetProcessHeap(), 0, keyPath);
-	}
+        } else if (IsChild(g_pChildWnd->hTreeWnd, hWndDelete) ||
+                   IsChild(g_pChildWnd->hListWnd, hWndDelete)) {
+            SendMessage(hWndDelete, WM_KEYDOWN, VK_DELETE, 0);
+        }
         break;
+    }
     case ID_EDIT_MODIFY:
     {
         LPCWSTR valueName = GetValueName(g_pChildWnd->hListWnd);




More information about the wine-cvs mailing list