Reviewed by Tim Hatcher.
- http://bugs.webkit.org/show_bug.cgi?id=15544
<rdar://problem/
5076426> fast/events/arrow-navigation.html needs to
not rely on Apple-specific key codes
* DumpRenderTree/mac/EventSendingController.mm:
(-[EventSendingController keyDown:withModifiers:]):
Added named key "rightArrow". Later we could have a whole table of these.
Also tweaked modifiers code a little.
* DumpRenderTree/win/EventSender.cpp: (keyDownCallback): Ditto.
LayoutTests:
Reviewed by Tim Hatcher.
- http://bugs.webkit.org/show_bug.cgi?id=15544
<rdar://problem/
5076426> fast/events/arrow-navigation.html needs to
not rely on Apple-specific key codes
* fast/events/arrow-navigation.html: Use "rightArrow" instead.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@26826
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2007-10-20 Darin Adler <darin@apple.com>
+
+ Reviewed by Tim Hatcher.
+
+ - http://bugs.webkit.org/show_bug.cgi?id=15544
+ <rdar://problem/5076426> fast/events/arrow-navigation.html needs to
+ not rely on Apple-specific key codes
+
+ * fast/events/arrow-navigation.html: Use "rightArrow" instead.
+
2007-10-20 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
tf.setSelectionRange(0, 0);
if (window.layoutTestController) {
layoutTestController.dumpAsText();
- eventSender.keyDown(String.fromCharCode(0xf703));
+ eventSender.keyDown("rightArrow");
}
if (tf.selectionStart == 1)
log("Test Passed");
+2007-10-20 Darin Adler <darin@apple.com>
+
+ Reviewed by Tim Hatcher.
+
+ - http://bugs.webkit.org/show_bug.cgi?id=15544
+ <rdar://problem/5076426> fast/events/arrow-navigation.html needs to
+ not rely on Apple-specific key codes
+
+ * DumpRenderTree/mac/EventSendingController.mm:
+ (-[EventSendingController keyDown:withModifiers:]):
+ Added named key "rightArrow". Later we could have a whole table of these.
+ Also tweaked modifiers code a little.
+
+ * DumpRenderTree/win/EventSender.cpp: (keyDownCallback): Ditto.
+
2007-10-19 Darin Adler <darin@apple.com>
Reviewed by Eric.
- (void)keyDown:(NSString *)character withModifiers:(WebScriptObject *)modifiers
{
- NSString *modifier = nil;
+ NSString *eventCharacter = character;
+ if ([character isEqualToString:@"rightArrow"]) {
+ const unichar rightArrowCharacter = NSRightArrowFunctionKey;
+ eventCharacter = [NSString stringWithCharacters:&rightArrowCharacter length:1];
+ }
+
int mask = 0;
-
if ([modifiers isKindOfClass:[WebScriptObject class]])
for (unsigned i = 0; [[modifiers webScriptValueAtIndex:i] isKindOfClass:[NSString class]]; i++) {
- modifier = (NSString *)[modifiers webScriptValueAtIndex:i];
+ NSString *modifier = (NSString *)[modifiers webScriptValueAtIndex:i];
if ([modifier isEqual:@"ctrlKey"])
mask |= NSControlKeyMask;
else if ([modifier isEqual:@"shiftKey"])
mask |= NSAlternateKeyMask;
else if ([modifier isEqual:@"metaKey"])
mask |= NSCommandKeyMask;
- else
- break;
}
[[[mainFrame frameView] documentView] layout];
-
+
NSEvent *event = [NSEvent keyEventWithType:NSKeyDown
location:NSMakePoint(5, 5)
modifierFlags:mask
timestamp:[self currentEventTime]
windowNumber:[[[mainFrame webView] window] windowNumber]
context:[NSGraphicsContext currentContext]
- characters:character
- charactersIgnoringModifiers:character
+ characters:eventCharacter
+ charactersIgnoringModifiers:eventCharacter
isARepeat:NO
keyCode:0];
-
- NSResponder *firstResponder = [[[mainFrame webView] window] firstResponder];
- [firstResponder keyDown:event];
+ [[[[mainFrame webView] window] firstResponder] keyDown:event];
}
- (void)enableDOMUIEventLogging:(WebScriptObject *)node
/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
if (argumentCount < 1)
return JSValueMakeUndefined(context);
- static JSStringRef lengthProperty = JSStringCreateWithUTF8CString("length");
+ static const JSStringRef lengthProperty = JSStringCreateWithUTF8CString("length");
COMPtr<IWebFramePrivate> framePrivate;
if (SUCCEEDED(frame->QueryInterface(&framePrivate)))
framePrivate->layout();
JSStringRef character = JSValueToStringCopy(context, arguments[0], exception);
- ASSERT(!exception || !*exception);
- int charCode = JSStringGetCharactersPtr(character)[0];
- int virtualKeyCode = toupper(LOBYTE(VkKeyScan(charCode)));
+ ASSERT(!*exception);
+ int virtualKeyCode;
+ if (JSStringIsEqualToUTF8CString(string, "rightArrow")) {
+ virtualKeyCode = VK_RIGHT;
+ } else {
+ int charCode = JSStringGetCharactersPtr(character)[0];
+ virtualKeyCode = toupper(LOBYTE(VkKeyScan(charCode)));
+ }
JSStringRelease(character);
BYTE keyState[256];
{ 0, 0, 0, 0 }
};
-static JSClassRef getClass(JSContextRef context) {
+static JSClassRef getClass(JSContextRef context)
+{
static JSClassRef eventSenderClass = 0;
if (!eventSenderClass) {