summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/web_contents_adapter.cpp21
-rw-r--r--src/core/web_contents_adapter.h2
-rw-r--r--src/core/web_contents_adapter_p.h3
-rw-r--r--src/core/web_contents_view_qt.cpp13
4 files changed, 20 insertions, 19 deletions
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 91e457726..a0aaf8c1e 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -336,7 +336,7 @@ WebContentsAdapterPrivate::WebContentsAdapterPrivate()
, adapterClient(0)
, nextRequestId(CallbackDirectory::ReservedCallbackIdsEnd)
, lastFindRequestId(0)
- , currentDropAction(Qt::IgnoreAction)
+ , currentDropAction(blink::WebDragOperationNone)
, inDragUpdateLoop(false)
, updateDragCursorMessagePollingTimer(new QTimer)
{
@@ -1106,7 +1106,7 @@ void WebContentsAdapter::startDragging(QObject *dragSource, const content::DropD
d->currentDropData->file_contents.clear();
d->currentDropData->file_description_filename.clear();
- d->currentDropAction = Qt::IgnoreAction;
+ d->currentDropAction = blink::WebDragOperationNone;
QDrag *drag = new QDrag(dragSource); // will be deleted by Qt's DnD implementation
bool dValid = true;
QMetaObject::Connection onDestroyed = QObject::connect(dragSource, &QObject::destroyed, [&dValid](){
@@ -1183,6 +1183,17 @@ void WebContentsAdapter::enterDrag(QDragEnterEvent *e, const QPoint &screenPos)
flagsFromModifiers(e->keyboardModifiers()));
}
+Qt::DropAction toQt(blink::WebDragOperation op)
+{
+ if (op & blink::WebDragOperationCopy)
+ return Qt::CopyAction;
+ if (op & blink::WebDragOperationLink)
+ return Qt::LinkAction;
+ if (op & blink::WebDragOperationMove || op & blink::WebDragOperationDelete)
+ return Qt::MoveAction;
+ return Qt::IgnoreAction;
+}
+
Qt::DropAction WebContentsAdapter::updateDragPosition(QDragMoveEvent *e, const QPoint &screenPos)
{
Q_D(WebContentsAdapter);
@@ -1210,13 +1221,13 @@ Qt::DropAction WebContentsAdapter::updateDragPosition(QDragMoveEvent *e, const Q
loop.Run();
d->updateDragCursorMessagePollingTimer->stop();
- return d->currentDropAction;
+ return toQt(d->currentDropAction);
}
-void WebContentsAdapter::updateDragAction(Qt::DropAction action)
+void WebContentsAdapter::updateDragAction(int action)
{
Q_D(WebContentsAdapter);
- d->currentDropAction = action;
+ d->currentDropAction = static_cast<blink::WebDragOperation>(action);
finishDragUpdate();
}
diff --git a/src/core/web_contents_adapter.h b/src/core/web_contents_adapter.h
index 3befe6d27..5b2f9a942 100644
--- a/src/core/web_contents_adapter.h
+++ b/src/core/web_contents_adapter.h
@@ -166,7 +166,7 @@ public:
Qt::DropActions allowedActions, const QPixmap &pixmap, const QPoint &offset);
void enterDrag(QDragEnterEvent *e, const QPoint &screenPos);
Qt::DropAction updateDragPosition(QDragMoveEvent *e, const QPoint &screenPos);
- void updateDragAction(Qt::DropAction action);
+ void updateDragAction(int action);
void finishDragUpdate();
void endDragging(const QPoint &clientPos, const QPoint &screenPos);
void leaveDrag();
diff --git a/src/core/web_contents_adapter_p.h b/src/core/web_contents_adapter_p.h
index 23a1aaef4..2d8490c7b 100644
--- a/src/core/web_contents_adapter_p.h
+++ b/src/core/web_contents_adapter_p.h
@@ -55,6 +55,7 @@
#include <base/callback.h>
#include "base/memory/ref_counted.h"
+#include <third_party/WebKit/public/platform/WebDragOperation.h>
#include <QScopedPointer>
#include <QSharedPointer>
@@ -93,7 +94,7 @@ public:
quint64 nextRequestId;
int lastFindRequestId;
std::unique_ptr<content::DropData> currentDropData;
- Qt::DropAction currentDropAction;
+ blink::WebDragOperation currentDropAction;
bool inDragUpdateLoop;
base::Closure dragUpdateLoopQuitClosure;
QScopedPointer<QTimer> updateDragCursorMessagePollingTimer;
diff --git a/src/core/web_contents_view_qt.cpp b/src/core/web_contents_view_qt.cpp
index 0c4cf29d3..24c4e198f 100644
--- a/src/core/web_contents_view_qt.cpp
+++ b/src/core/web_contents_view_qt.cpp
@@ -203,17 +203,6 @@ Qt::DropActions toQtDropActions(blink::WebDragOperationsMask ops)
return result;
}
-Qt::DropAction toQt(blink::WebDragOperation op)
-{
- if (op == blink::WebDragOperationCopy)
- return Qt::CopyAction;
- if (op == blink::WebDragOperationLink)
- return Qt::LinkAction;
- if (op == blink::WebDragOperationMove || op == blink::WebDragOperationDelete)
- return Qt::MoveAction;
- return Qt::IgnoreAction;
-}
-
void WebContentsViewQt::StartDragging(const content::DropData &drop_data,
blink::WebDragOperationsMask allowed_ops,
const gfx::ImageSkia &image,
@@ -235,7 +224,7 @@ void WebContentsViewQt::StartDragging(const content::DropData &drop_data,
void WebContentsViewQt::UpdateDragCursor(blink::WebDragOperation dragOperation)
{
- m_client->webContentsAdapter()->updateDragAction(toQt(dragOperation));
+ m_client->webContentsAdapter()->updateDragAction(dragOperation);
}
void WebContentsViewQt::TakeFocus(bool reverse)