WebKit:
authorkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 1 Dec 2003 19:05:21 +0000 (19:05 +0000)
committerkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 1 Dec 2003 19:05:21 +0000 (19:05 +0000)
        Reviewed by John

Fix for this bug:

<rdar://problem/3496873>: Move key event helper functions to WebKit

        * Misc.subproj/WebNSEventExtras.h: Add declarations for new key event
helpers.
        * Misc.subproj/WebNSEventExtras.m:
        (-[NSEvent _web_isKeyEvent:]): Added.
        (-[NSEvent _web_isDeleteKeyEvent]): Added.
        (-[NSEvent _web_isEscapeKeyEvent]): Added.
        (-[NSEvent _web_isOptionTabKeyEvent]): Added.
        (-[NSEvent _web_isReturnOrEnterKeyEvent]): Added.
        (-[NSEvent _web_isTabKeyEvent]): Added.
        * WebKit.pbproj/project.pbxproj: Made WebNSEventExtras.h a private header
so WebBrowser can use the new helpers.

WebBrowser:

        Reviewed by John

Fix for this bug:

<rdar://problem/3496873>: Move key event helper functions to WebKit

        * BookmarksViewController.m:
        (-[BookmarksViewController handleKeyDown:inSourceColumn:]): Move
to new key event helper.
        * BrowserNSEventExtras.h: Remove key event helpers from here. WebBrowser
will now pick these up from WebKit.
        * BrowserNSEventExtras.m: Ditto.
        * BrowserWindowController.m: Move to new key event helpers.
        (-[BrowserWindowController cancel:]): Ditto.
        (-[BrowserWindowController windowWillHandleKeyEvent:]): Ditto.
        (-[BrowserWindowController performQuickSearch:]): Ditto.
        * DownloadViewController.m:
        (-[DownloadViewController keyDown:]): Ditto.
        * Preferences.subproj/SheetWithTableController.m:
        (-[SheetWithTableController tableView:keyDown:]): Ditto.
        * TitleBarButton.m: Ditto.

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

WebKit/ChangeLog
WebKit/Misc.subproj/WebNSEventExtras.h
WebKit/Misc.subproj/WebNSEventExtras.m
WebKit/WebKit.pbproj/project.pbxproj

index efcceb1..f1ce313 100644 (file)
@@ -1,3 +1,23 @@
+2003-12-01  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by John
+
+       Fix for this bug:
+
+       <rdar://problem/3496873>: Move key event helper functions to WebKit
+
+        * Misc.subproj/WebNSEventExtras.h: Add declarations for new key event
+       helpers.
+        * Misc.subproj/WebNSEventExtras.m:
+        (-[NSEvent _web_isKeyEvent:]): Added.
+        (-[NSEvent _web_isDeleteKeyEvent]): Added.
+        (-[NSEvent _web_isEscapeKeyEvent]): Added.
+        (-[NSEvent _web_isOptionTabKeyEvent]): Added.
+        (-[NSEvent _web_isReturnOrEnterKeyEvent]): Added.
+        (-[NSEvent _web_isTabKeyEvent]): Added.
+        * WebKit.pbproj/project.pbxproj: Made WebNSEventExtras.h a private header
+       so WebBrowser can use the new helpers.
+
 === Safari-115 ===
 
 2003-11-21  Maciej Stachowiak  <mjs@apple.com>
index d499aab..600d534 100644 (file)
@@ -7,6 +7,12 @@
 
 @interface NSEvent (WebExtras)
 
+-(BOOL)_web_isKeyEvent:(unichar)key;
+
+-(BOOL)_web_isDeleteKeyEvent;
+-(BOOL)_web_isEscapeKeyEvent;
+-(BOOL)_web_isOptionTabKeyEvent;
+-(BOOL)_web_isReturnOrEnterKeyEvent;
 -(BOOL)_web_isTabKeyEvent;
 
 @end
index f16acaf..f9c0881 100644 (file)
@@ -7,23 +7,53 @@
 
 @implementation NSEvent (WebExtras)
 
--(BOOL)_web_isTabKeyEvent
+-(BOOL)_web_isKeyEvent:(unichar)key
 {
-    if ([self type] != NSKeyDown) {
+    int type = [self type];
+    if (type != NSKeyDown && type != NSKeyUp)
         return NO;
-    }
     
     NSString *chars = [self charactersIgnoringModifiers];
     if ([chars length] != 1)
         return NO;
     
-    const unichar tabKey = 0x0009;
-    const unichar shiftTabKey = 0x0019;
     unichar c = [chars characterAtIndex:0];
-    if (c != tabKey && c != shiftTabKey)
+    if (c != key)
         return NO;
     
     return YES;
 }
 
+- (BOOL)_web_isDeleteKeyEvent
+{
+    const unichar deleteKey = NSDeleteCharacter;
+    const unichar deleteForwardKey = NSDeleteFunctionKey;
+    return [self _web_isKeyEvent:deleteKey] || [self _web_isKeyEvent:deleteForwardKey];
+}
+
+- (BOOL)_web_isEscapeKeyEvent
+{
+    const unichar escapeKey = 0x001b;
+    return [self _web_isKeyEvent:escapeKey];
+}
+
+- (BOOL)_web_isOptionTabKeyEvent
+{
+    return ([self modifierFlags] & NSAlternateKeyMask) && [self _web_isTabKeyEvent];
+}
+
+- (BOOL)_web_isReturnOrEnterKeyEvent
+{
+    const unichar enterKey = NSEnterCharacter;
+    const unichar returnKey = NSCarriageReturnCharacter;
+    return [self _web_isKeyEvent:enterKey] || [self _web_isKeyEvent:returnKey];
+}
+
+- (BOOL)_web_isTabKeyEvent
+{
+    const unichar tabKey = 0x0009;
+    const unichar shiftTabKey = 0x0019;
+    return [self _web_isKeyEvent:tabKey] || [self _web_isKeyEvent:shiftTabKey];
+}
+
 @end
index ae50919..9eba93f 100644 (file)
                        fileRef = BE887BFF056D3A6E009BB3E7;
                        isa = PBXBuildFile;
                        settings = {
+                               ATTRIBUTES = (
+                                       Private,
+                               );
                        };
                };
                BE887C02056D3A6E009BB3E7 = {