Reviewed by Steve and Darin.
authorap@webkit.org <ap@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 21 Dec 2007 20:17:26 +0000 (20:17 +0000)
committerap@webkit.org <ap@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 21 Dec 2007 20:17:26 +0000 (20:17 +0000)
        <rdar://problem/5497037> Win32: Accelerator keys (ctrl-x,c,v,w,q,etc) only fire keyUp,
        keyDown/Press consumed by accelerator table (14104)

        <rdar://problem/5346299> preventing default behavior for key down does not block accelerators like Ctrl+N

        This is WebKit part of a fix, most of which will be in Safari.

        * WebView.cpp:
        (WebViewWndProc): Return our result for WM_(SYS)KEYDOWN to let the client know whether
        further procesing is desired.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28936 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/win/ChangeLog
WebKit/win/WebView.cpp

index f39e6f87f180f0763d690519d1b68ec6cb5b479f..5b0087ec5975c28688f096236cfe45988800061f 100644 (file)
@@ -1,3 +1,18 @@
+2007-12-21  Alexey Proskuryakov  <ap@webkit.org>
+
+        Reviewed by Steve and Darin.
+
+        <rdar://problem/5497037> Win32: Accelerator keys (ctrl-x,c,v,w,q,etc) only fire keyUp,
+        keyDown/Press consumed by accelerator table (14104)
+
+        <rdar://problem/5346299> preventing default behavior for key down does not block accelerators like Ctrl+N
+
+        This is WebKit part of a fix, most of which will be in Safari.
+
+        * WebView.cpp:
+        (WebViewWndProc): Return our result for WM_(SYS)KEYDOWN to let the client know whether
+        further procesing is desired.
+
 2007-12-21  Alexey Proskuryakov  <ap@webkit.org>
 
         Build fix: cannot use framework-style include for ProgIDMacros.h,
index f0a7f432dd34b383612c4b92c69cd53673de6e07..e4235030c35d0c9865bc6f6335b08ce6d4933ab9 100644 (file)
@@ -1804,7 +1804,8 @@ static LRESULT CALLBACK WebViewWndProc(HWND hWnd, UINT message, WPARAM wParam, L
     if (!handled)
         lResult = DefWindowProc(hWnd, message, wParam, lParam);
     
-    return lResult;
+    // Let the client know whether we consider this message handled.
+    return (message == WM_KEYDOWN || message == WM_SYSKEYDOWN) ? !handled : lResult;
 }
 
 bool WebView::developerExtrasEnabled() const