Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Side by Side Diff: Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp

Issue 15062004: Don't force layout when sending mouse events. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 417
418 // 418 //
419 // Implemented javascript methods. 419 // Implemented javascript methods.
420 // 420 //
421 421
422 void EventSender::mouseDown(const CppArgumentList& arguments, CppVariant* result ) 422 void EventSender::mouseDown(const CppArgumentList& arguments, CppVariant* result )
423 { 423 {
424 if (result) // Could be 0 if invoked asynchronously. 424 if (result) // Could be 0 if invoked asynchronously.
425 result->setNull(); 425 result->setNull();
426 426
427 webview()->layout();
428
429 int buttonNumber = getButtonNumberFromSingleArg(arguments); 427 int buttonNumber = getButtonNumberFromSingleArg(arguments);
430 WEBKIT_ASSERT(buttonNumber != -1); 428 WEBKIT_ASSERT(buttonNumber != -1);
431 429
432 WebMouseEvent::Button buttonType = getButtonTypeFromButtonNumber(buttonNumbe r); 430 WebMouseEvent::Button buttonType = getButtonTypeFromButtonNumber(buttonNumbe r);
433 431
434 updateClickCountForButton(buttonType); 432 updateClickCountForButton(buttonType);
435 433
436 WebMouseEvent event; 434 WebMouseEvent event;
437 pressedButton = buttonType; 435 pressedButton = buttonType;
438 initMouseEvent(WebInputEvent::MouseDown, buttonType, lastMousePos, &event, g etCurrentEventTimeSec(m_delegate)); 436 initMouseEvent(WebInputEvent::MouseDown, buttonType, lastMousePos, &event, g etCurrentEventTimeSec(m_delegate));
439 if (arguments.size() >= 2 && (arguments[1].isObject() || arguments[1].isStri ng())) 437 if (arguments.size() >= 2 && (arguments[1].isObject() || arguments[1].isStri ng()))
440 applyKeyModifiers(&(arguments[1]), &event); 438 applyKeyModifiers(&(arguments[1]), &event);
441 webview()->handleInputEvent(event); 439 webview()->handleInputEvent(event);
442 } 440 }
443 441
444 void EventSender::mouseUp(const CppArgumentList& arguments, CppVariant* result) 442 void EventSender::mouseUp(const CppArgumentList& arguments, CppVariant* result)
445 { 443 {
446 if (result) // Could be 0 if invoked asynchronously. 444 if (result) // Could be 0 if invoked asynchronously.
447 result->setNull(); 445 result->setNull();
448 446
449 webview()->layout();
450
451 int buttonNumber = getButtonNumberFromSingleArg(arguments); 447 int buttonNumber = getButtonNumberFromSingleArg(arguments);
452 WEBKIT_ASSERT(buttonNumber != -1); 448 WEBKIT_ASSERT(buttonNumber != -1);
453 449
454 WebMouseEvent::Button buttonType = getButtonTypeFromButtonNumber(buttonNumbe r); 450 WebMouseEvent::Button buttonType = getButtonTypeFromButtonNumber(buttonNumbe r);
455 451
456 if (isDragMode() && !replayingSavedEvents) { 452 if (isDragMode() && !replayingSavedEvents) {
457 SavedEvent savedEvent; 453 SavedEvent savedEvent;
458 savedEvent.type = SavedEvent::MouseUp; 454 savedEvent.type = SavedEvent::MouseUp;
459 savedEvent.buttonType = buttonType; 455 savedEvent.buttonType = buttonType;
460 mouseEventQueue.push_back(savedEvent); 456 mouseEventQueue.push_back(savedEvent);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 495
500 currentDragData.reset(); 496 currentDragData.reset();
501 } 497 }
502 498
503 void EventSender::mouseMoveTo(const CppArgumentList& arguments, CppVariant* resu lt) 499 void EventSender::mouseMoveTo(const CppArgumentList& arguments, CppVariant* resu lt)
504 { 500 {
505 result->setNull(); 501 result->setNull();
506 502
507 if (arguments.size() < 2 || !arguments[0].isNumber() || !arguments[1].isNumb er()) 503 if (arguments.size() < 2 || !arguments[0].isNumber() || !arguments[1].isNumb er())
508 return; 504 return;
509 webview()->layout();
510 505
511 WebPoint mousePos(arguments[0].toInt32(), arguments[1].toInt32()); 506 WebPoint mousePos(arguments[0].toInt32(), arguments[1].toInt32());
512 507
513 if (isDragMode() && pressedButton == WebMouseEvent::ButtonLeft && !replaying SavedEvents) { 508 if (isDragMode() && pressedButton == WebMouseEvent::ButtonLeft && !replaying SavedEvents) {
514 SavedEvent savedEvent; 509 SavedEvent savedEvent;
515 savedEvent.type = SavedEvent::MouseMove; 510 savedEvent.type = SavedEvent::MouseMove;
516 savedEvent.pos = mousePos; 511 savedEvent.pos = mousePos;
517 mouseEventQueue.push_back(savedEvent); 512 mouseEventQueue.push_back(savedEvent);
518 } else { 513 } else {
519 WebMouseEvent event; 514 WebMouseEvent event;
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after
1070 webview()->handleInputEvent(event); 1065 webview()->handleInputEvent(event);
1071 } 1066 }
1072 1067
1073 void EventSender::handleMouseWheel(const CppArgumentList& arguments, CppVariant* result, bool continuous) 1068 void EventSender::handleMouseWheel(const CppArgumentList& arguments, CppVariant* result, bool continuous)
1074 { 1069 {
1075 result->setNull(); 1070 result->setNull();
1076 1071
1077 if (arguments.size() < 2 || !arguments[0].isNumber() || !arguments[1].isNumb er()) 1072 if (arguments.size() < 2 || !arguments[0].isNumber() || !arguments[1].isNumb er())
1078 return; 1073 return;
1079 1074
1080 // Force a layout here just to make sure every position has been
1081 // determined before we send events (as well as all the other methods
1082 // that send an event do).
1083 webview()->layout();
1084
1085 int horizontal = arguments[0].toInt32(); 1075 int horizontal = arguments[0].toInt32();
1086 int vertical = arguments[1].toInt32(); 1076 int vertical = arguments[1].toInt32();
1087 int paged = false; 1077 int paged = false;
1088 int hasPreciseScrollingDeltas = false; 1078 int hasPreciseScrollingDeltas = false;
1089 1079
1090 if (arguments.size() > 2 && arguments[2].isBool()) 1080 if (arguments.size() > 2 && arguments[2].isBool())
1091 paged = arguments[2].toBoolean(); 1081 paged = arguments[2].toBoolean();
1092 1082
1093 if (arguments.size() > 3 && arguments[3].isBool()) 1083 if (arguments.size() > 3 && arguments[3].isBool())
1094 hasPreciseScrollingDeltas = arguments[3].toBoolean(); 1084 hasPreciseScrollingDeltas = arguments[3].toBoolean();
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
1352 { 1342 {
1353 result->setNull(); 1343 result->setNull();
1354 } 1344 }
1355 1345
1356 void EventSender::clearKillRing(const CppArgumentList&, CppVariant* result) 1346 void EventSender::clearKillRing(const CppArgumentList&, CppVariant* result)
1357 { 1347 {
1358 result->setNull(); 1348 result->setNull();
1359 } 1349 }
1360 1350
1361 } 1351 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698