| Index: webkit/tools/test_shell/event_sending_controller.cc
|
| ===================================================================
|
| --- webkit/tools/test_shell/event_sending_controller.cc (revision 25321)
|
| +++ webkit/tools/test_shell/event_sending_controller.cc (working copy)
|
| @@ -45,7 +45,8 @@
|
|
|
| using base::Time;
|
| using base::TimeTicks;
|
| -
|
| +using WebKit::WebDragOperation;
|
| +using WebKit::WebDragOperationsMask;
|
| using WebKit::WebDragData;
|
| using WebKit::WebInputEvent;
|
| using WebKit::WebKeyboardEvent;
|
| @@ -62,6 +63,8 @@
|
| namespace {
|
|
|
| static WebDragData current_drag_data;
|
| +static WebDragOperation current_drag_effect;
|
| +static WebDragOperationsMask current_drag_effects_allowed;
|
| static bool replaying_saved_events = false;
|
| static std::queue<WebMouseEvent> mouse_event_queue;
|
|
|
| @@ -188,6 +191,8 @@
|
| // The test should have finished a drag and the mouse button state.
|
| DCHECK(current_drag_data.isNull());
|
| current_drag_data.reset();
|
| + current_drag_effect = WebKit::WebDragOperationNone;
|
| + current_drag_effects_allowed = WebKit::WebDragOperationNone;
|
| pressed_button_ = WebMouseEvent::ButtonNone;
|
| dragMode.Set(true);
|
| #if defined(OS_WIN)
|
| @@ -211,9 +216,17 @@
|
| }
|
|
|
| // static
|
| -void EventSendingController::DoDragDrop(const WebDragData& drag_data) {
|
| +void EventSendingController::DoDragDrop(const WebKit::WebPoint &event_pos,
|
| + const WebDragData& drag_data,
|
| + WebDragOperationsMask mask) {
|
| + WebMouseEvent event;
|
| + InitMouseEvent(WebInputEvent::MouseDown, pressed_button_, event_pos, &event);
|
| + WebPoint client_point(event.x, event.y);
|
| + WebPoint screen_point(event.globalX, event.globalY);
|
| current_drag_data = drag_data;
|
| - webview()->DragTargetDragEnter(drag_data, 0, WebPoint(), WebPoint());
|
| + current_drag_effects_allowed = mask;
|
| + current_drag_effect = webview()->DragTargetDragEnter(
|
| + drag_data, 0, client_point, screen_point, current_drag_effects_allowed);
|
|
|
| // Finish processing events.
|
| ReplaySavedEvents();
|
| @@ -313,14 +326,17 @@
|
| WebPoint client_point(e.x, e.y);
|
| WebPoint screen_point(e.globalX, e.globalY);
|
|
|
| - bool valid = webview()->DragTargetDragOver(client_point, screen_point);
|
| - if (valid) {
|
| - webview()->DragSourceEndedAt(client_point, screen_point);
|
| + webview()->DragSourceMovedTo(client_point, screen_point);
|
| + current_drag_effect = webview()->DragTargetDragOver(client_point,
|
| + screen_point,
|
| + current_drag_effects_allowed);
|
| + if (current_drag_effect) {
|
| webview()->DragTargetDrop(client_point, screen_point);
|
| } else {
|
| - webview()->DragSourceEndedAt(client_point, screen_point);
|
| webview()->DragTargetDragLeave();
|
| }
|
| + webview()->DragSourceEndedAt(client_point, screen_point,
|
| + current_drag_effect);
|
|
|
| current_drag_data.reset();
|
| }
|
| @@ -357,7 +373,9 @@
|
| WebPoint screen_point(e.globalX, e.globalY);
|
|
|
| webview()->DragSourceMovedTo(client_point, screen_point);
|
| - webview()->DragTargetDragOver(client_point, screen_point);
|
| + current_drag_effect = webview()->DragTargetDragOver(
|
| + client_point, screen_point,
|
| + current_drag_effects_allowed);
|
| }
|
| }
|
|
|
|
|