diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/render_widget_host_view_qt.cpp | 4 | ||||
-rw-r--r-- | src/core/web_contents_adapter_client.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp index 2e67b0e89..fbfa12e91 100644 --- a/src/core/render_widget_host_view_qt.cpp +++ b/src/core/render_widget_host_view_qt.cpp @@ -755,6 +755,10 @@ bool RenderWidgetHostViewQt::forwardEvent(QEvent *event) Focus(); // Fall through. case QEvent::MouseButtonRelease: case QEvent::MouseMove: + // Skip second MouseMove event when a window is being adopted, so that Chromium + // can properly handle further move events. + if (m_adapterClient->isBeingAdopted()) + return false; handleMouseEvent(static_cast<QMouseEvent*>(event)); break; case QEvent::KeyPress: diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h index f2a05c575..117e21e25 100644 --- a/src/core/web_contents_adapter_client.h +++ b/src/core/web_contents_adapter_client.h @@ -207,6 +207,7 @@ public: virtual void focusContainer() = 0; virtual void unhandledKeyEvent(QKeyEvent *event) = 0; virtual void adoptNewWindow(WebContentsAdapter *newWebContents, WindowOpenDisposition disposition, bool userGesture, const QRect & initialGeometry) = 0; + virtual bool isBeingAdopted() = 0; virtual void close() = 0; virtual void windowCloseRejected() = 0; virtual bool contextMenuRequested(const WebEngineContextMenuData&) = 0; |