Changeset 53498 in webkit
- Timestamp:
- Jan 19, 2010 2:50:50 PM (14 years ago)
- Location:
- trunk/WebKitTools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKitTools/ChangeLog
r53496 r53498 1 2010-01-19 Kent Tamura <tkent@chromium.org> 2 3 Reviewed by Darin Adler. 4 5 [DRT][Mac] Add modifiers parameter to eventSender.mouseDown() and eventSender.mouseUp() 6 https://bugs.webkit.org/show_bug.cgi?id=33783 7 8 Some listbox tests check selection behavior by click events with 9 "meta" or "shift" keys. Behaviors for such modifier keys are 10 platform-dependent. The new parameter of mouseDown() and mouseUp() 11 allows to specify not only concrete modifier keys such as 12 "shiftKey" "metaKey", but also functional names like 13 "addSelectionKey" "rangeSelectionKey". 14 15 * DumpRenderTree/mac/EventSendingController.mm: 16 (+[EventSendingController isSelectorExcludedFromWebScript:]): 17 (+[EventSendingController webScriptNameForSelector:]): 18 (buildModifierFlags): 19 (-[EventSendingController mouseDown:withModifiers:]): 20 (-[EventSendingController mouseDown:]): 21 (-[EventSendingController mouseUp:withModifiers:]): 22 (-[EventSendingController mouseUp:]): 23 (-[EventSendingController keyDown:withModifiers:withLocation:]): 24 1 25 2010-01-19 Adam Barth <abarth@webkit.org> 2 26 -
trunk/WebKitTools/DumpRenderTree/mac/EventSendingController.mm
r52608 r53498 129 129 || aSelector == @selector(leapForward:) 130 130 || aSelector == @selector(mouseDown:) 131 || aSelector == @selector(mouseDown:withModifiers:) 131 132 || aSelector == @selector(mouseMoveToX:Y:) 132 133 || aSelector == @selector(mouseUp:) 134 || aSelector == @selector(mouseUp:withModifiers:) 133 135 || aSelector == @selector(scheduleAsynchronousClick) 134 136 || aSelector == @selector(textZoomIn) … … 159 161 if (aSelector == @selector(leapForward:)) 160 162 return @"leapForward"; 161 if (aSelector == @selector(mouseDown:) )163 if (aSelector == @selector(mouseDown:) || aSelector == @selector(mouseDown:withModifiers:)) 162 164 return @"mouseDown"; 163 if (aSelector == @selector(mouseUp:) )165 if (aSelector == @selector(mouseUp:) || aSelector == @selector(mouseUp:withModifiers:)) 164 166 return @"mouseUp"; 165 167 if (aSelector == @selector(mouseMoveToX:Y:)) … … 286 288 } 287 289 288 - (void)mouseDown:(int)buttonNumber 290 static int buildModifierFlags(const WebScriptObject* modifiers) 291 { 292 int flags = 0; 293 if (![modifiers isKindOfClass:[WebScriptObject class]]) 294 return flags; 295 for (unsigned i = 0; [[modifiers webScriptValueAtIndex:i] isKindOfClass:[NSString class]]; i++) { 296 NSString* modifierName = (NSString*)[modifiers webScriptValueAtIndex:i]; 297 if ([modifierName isEqual:@"ctrlKey"]) 298 flags |= NSControlKeyMask; 299 else if ([modifierName isEqual:@"shiftKey"] || [modifierName isEqual:@"rangeSelectionKey"]) 300 flags |= NSShiftKeyMask; 301 else if ([modifierName isEqual:@"altKey"]) 302 flags |= NSAlternateKeyMask; 303 else if ([modifierName isEqual:@"metaKey"] || [modifierName isEqual:@"addSelectionKey"]) 304 flags |= NSCommandKeyMask; 305 } 306 return flags; 307 } 308 309 - (void)mouseDown:(int)buttonNumber withModifiers:(WebScriptObject*)modifiers 289 310 { 290 311 [[[mainFrame frameView] documentView] layout]; … … 294 315 NSEvent *event = [NSEvent mouseEventWithType:eventType 295 316 location:lastMousePosition 296 modifierFlags: 0317 modifierFlags:buildModifierFlags(modifiers) 297 318 timestamp:[self currentEventTime] 298 319 windowNumber:[[[mainFrame webView] window] windowNumber] … … 310 331 } 311 332 333 - (void)mouseDown:(int)buttonNumber 334 { 335 [self mouseDown:buttonNumber withModifiers:nil]; 336 } 337 312 338 - (void)textZoomIn 313 339 { … … 330 356 } 331 357 332 - (void)mouseUp:(int)buttonNumber 358 - (void)mouseUp:(int)buttonNumber withModifiers:(WebScriptObject*)modifiers 333 359 { 334 360 if (dragMode && !replayingSavedEvents) { 335 NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[EventSendingController instanceMethodSignatureForSelector:@selector(mouseUp: )]];361 NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[EventSendingController instanceMethodSignatureForSelector:@selector(mouseUp:withModifiers:)]]; 336 362 [invocation setTarget:self]; 337 [invocation setSelector:@selector(mouseUp: )];363 [invocation setSelector:@selector(mouseUp:withModifiers:)]; 338 364 [invocation setArgument:&buttonNumber atIndex:2]; 365 [invocation setArgument:&modifiers atIndex:3]; 339 366 340 367 [EventSendingController saveEvent:invocation]; … … 348 375 NSEvent *event = [NSEvent mouseEventWithType:eventType 349 376 location:lastMousePosition 350 modifierFlags: 0377 modifierFlags:buildModifierFlags(modifiers) 351 378 timestamp:[self currentEventTime] 352 379 windowNumber:[[[mainFrame webView] window] windowNumber] … … 384 411 } 385 412 413 - (void)mouseUp:(int)buttonNumber 414 { 415 [self mouseUp:buttonNumber withModifiers:nil]; 416 } 417 386 418 - (void)mouseMoveToX:(int)x Y:(int)y 387 419 { … … 525 557 } 526 558 527 if ([modifiers isKindOfClass:[WebScriptObject class]]) { 528 for (unsigned i = 0; [[modifiers webScriptValueAtIndex:i] isKindOfClass:[NSString class]]; i++) { 529 NSString *modifier = (NSString *)[modifiers webScriptValueAtIndex:i]; 530 if ([modifier isEqual:@"ctrlKey"]) 531 modifierFlags |= NSControlKeyMask; 532 else if ([modifier isEqual:@"shiftKey"]) 533 modifierFlags |= NSShiftKeyMask; 534 else if ([modifier isEqual:@"altKey"]) 535 modifierFlags |= NSAlternateKeyMask; 536 else if ([modifier isEqual:@"metaKey"]) 537 modifierFlags |= NSCommandKeyMask; 538 } 539 } 559 modifierFlags |= buildModifierFlags(modifiers); 540 560 541 561 if (keyLocation == DOM_KEY_LOCATION_NUMPAD)
Note: See TracChangeset
for help on using the changeset viewer.