[PATCH 06/21] Support for TCN_KEYDOWN notification

Nikolay Sivov bunglehead at gmail.com
Fri Oct 9 18:27:33 CDT 2009


---
 dlls/comctl32/tab.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/dlls/comctl32/tab.c b/dlls/comctl32/tab.c
index 13f16b3..e229275 100644
--- a/dlls/comctl32/tab.c
+++ b/dlls/comctl32/tab.c
@@ -46,7 +46,6 @@
  *   NM_RELEASEDCAPTURE
  *   TCN_FOCUSCHANGE
  *   TCN_GETOBJECT
- *   TCN_KEYDOWN
  *
  *  Macros:
  *   TabCtrl_AdjustRect
@@ -488,9 +487,18 @@ TAB_GetItemRect(const TAB_INFO *infoPtr, INT item, RECT *rect)
  *
  * This method is called to handle keyboard input
  */
-static LRESULT TAB_KeyDown(TAB_INFO* infoPtr, WPARAM keyCode)
+static LRESULT TAB_KeyDown(TAB_INFO* infoPtr, WPARAM keyCode, LPARAM lParam)
 {
   INT newItem = -1;
+  NMTCKEYDOWN nm;
+
+  /* TCN_KEYDOWN notification sent always */
+  nm.hdr.hwndFrom = infoPtr->hwnd;
+  nm.hdr.idFrom = GetWindowLongPtrW(infoPtr->hwnd, GWLP_ID);
+  nm.hdr.code = TCN_KEYDOWN;
+  nm.wVKey = keyCode;
+  nm.flags = lParam;
+  SendMessageW(infoPtr->hwndNotify, WM_NOTIFY, nm.hdr.idFrom, (LPARAM)&nm);
 
   switch (keyCode)
   {
@@ -3473,7 +3481,7 @@ TAB_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
       break;   /* Don't disturb normal focus behavior */
 
     case WM_KEYDOWN:
-      return TAB_KeyDown(infoPtr, wParam);
+      return TAB_KeyDown(infoPtr, wParam, lParam);
 
     case WM_NCHITTEST:
       return TAB_NCHitTest(infoPtr, lParam);
-- 
1.5.6.5


--=-ypQZ8y11W0/DVOZnkk2F--




More information about the wine-patches mailing list