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

Unified Diff: webkit/tools/test_shell/event_sending_controller.cc

Issue 174364: Plumb the DragOperation through all the layers between the platform DnD code ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/tools/test_shell/event_sending_controller.h ('k') | webkit/tools/test_shell/test_webview_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
}
}
« no previous file with comments | « webkit/tools/test_shell/event_sending_controller.h ('k') | webkit/tools/test_shell/test_webview_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698