diff options
author | Liang Qi <liang.qi@qt.io> | 2016-11-11 09:08:50 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2016-11-11 12:05:38 +0100 |
commit | 39f7ce19dbce34dfa7e730d6fa743d88109c3369 (patch) | |
tree | 8b99513fe8a906807a0e3fac2780b9d1e6a63827 /src/webenginewidgets | |
parent | 6c941affb2dd263d929b69afae3a0b9664869a9d (diff) | |
parent | 2d49b1b20f3275316310df599f1363ac86b8f078 (diff) |
Merge remote-tracking branch 'origin/5.7' into 5.8
Conflicts:
src/core/content_browser_client_qt.cpp
src/core/content_browser_client_qt.h
src/core/gl_surface_qt.cpp
src/core/print_view_manager_qt.cpp
src/core/web_contents_delegate_qt.cpp
src/core/web_engine_context.cpp
src/webengine/doc/src/qtwebengine-overview.qdoc
src/webengine/doc/src/qtwebengine-platform-notes.qdoc
src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
src/webenginewidgets/webenginewidgets.pro
sync.profile
Change-Id: I44495f4d899580c882d6b86d68d7f6b77c8e91f6
Diffstat (limited to 'src/webenginewidgets')
6 files changed, 28 insertions, 3 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 1004b3e92..ca160c362 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -333,6 +333,11 @@ void QWebEnginePagePrivate::adoptNewWindowImpl(QWebEnginePage *newPage, if (!initialGeometry.isEmpty()) emit newPage->geometryChangeRequested(initialGeometry); + // If the constructor of the QWebEnginePage descendant set a web channel, + // set it on the new adapter. + newWebContents->setWebChannel(newPage->d_func()->webChannel + , newPage->d_func()->webChannelWorldId); + // Page has finished the adoption process. newPage->d_func()->m_isBeingAdopted = false; } diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp index 6171391e3..8b4053e73 100644 --- a/src/webenginewidgets/api/qwebengineview.cpp +++ b/src/webenginewidgets/api/qwebengineview.cpp @@ -107,6 +107,7 @@ static QAccessibleInterface *webAccessibleFactory(const QString &, QObject *obje QWebEngineViewPrivate::QWebEngineViewPrivate() : page(0) , m_pendingContextMenuEvent(false) + , m_dragEntered(false) { #ifndef QT_NO_ACCESSIBILITY QAccessible::installFactory(&webAccessibleFactory); @@ -350,7 +351,10 @@ void QWebEngineView::dragEnterEvent(QDragEnterEvent *e) { Q_D(QWebEngineView); e->accept(); + if (d->m_dragEntered) + d->page->d_ptr->adapter->leaveDrag(); d->page->d_ptr->adapter->enterDrag(e, mapToGlobal(e->pos())); + d->m_dragEntered = true; } /*! @@ -359,8 +363,11 @@ void QWebEngineView::dragEnterEvent(QDragEnterEvent *e) void QWebEngineView::dragLeaveEvent(QDragLeaveEvent *e) { Q_D(QWebEngineView); + if (!d->m_dragEntered) + return; e->accept(); d->page->d_ptr->adapter->leaveDrag(); + d->m_dragEntered = false; } /*! @@ -369,6 +376,8 @@ void QWebEngineView::dragLeaveEvent(QDragLeaveEvent *e) void QWebEngineView::dragMoveEvent(QDragMoveEvent *e) { Q_D(QWebEngineView); + if (!d->m_dragEntered) + return; QtWebEngineCore::WebContentsAdapter *adapter = d->page->d_ptr->adapter.data(); Qt::DropAction dropAction = adapter->updateDragPosition(e, mapToGlobal(e->pos())); if (Qt::IgnoreAction == dropAction) { @@ -385,8 +394,11 @@ void QWebEngineView::dragMoveEvent(QDragMoveEvent *e) void QWebEngineView::dropEvent(QDropEvent *e) { Q_D(QWebEngineView); + if (!d->m_dragEntered) + return; e->accept(); d->page->d_ptr->adapter->endDragging(e->pos(), mapToGlobal(e->pos())); + d->m_dragEntered = false; } #ifndef QT_NO_ACCESSIBILITY diff --git a/src/webenginewidgets/api/qwebengineview_p.h b/src/webenginewidgets/api/qwebengineview_p.h index b98c553f4..45b3e266e 100644 --- a/src/webenginewidgets/api/qwebengineview_p.h +++ b/src/webenginewidgets/api/qwebengineview_p.h @@ -71,6 +71,7 @@ public: QWebEnginePage *page; bool m_pendingContextMenuEvent; + bool m_dragEntered; }; #ifndef QT_NO_ACCESSIBILITY diff --git a/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc index 69bac36c8..07afd6501 100644 --- a/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc +++ b/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc @@ -164,12 +164,12 @@ /*! \fn void QWebEngineSettings::setFontSize(FontSize type, int size) - Sets the font size for \a type to \a size. + Sets the font size for \a type to \a size in pixels. */ /*! \fn int QWebEngineSettings::fontSize(FontSize type) const - Returns the default font size for \a type. + Returns the default font size for \a type in pixels. */ /*! diff --git a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp index b333c7b0e..eb3a3931a 100644 --- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp +++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp @@ -55,6 +55,7 @@ #include <QSGSimpleRectNode> #include <QSGSimpleTextureNode> #endif +#include <private/qwidget_p.h> namespace QtWebEngineCore { @@ -402,6 +403,12 @@ bool RenderWidgetHostViewQtDelegateWidget::event(QEvent *event) break; } + QEvent::Type type = event->type(); + if (type == QEvent::FocusIn) { + QWidgetPrivate *d = QWidgetPrivate::get(this); + d->updateWidgetTransform(event); + } + if (event->type() == QEvent::MouseButtonDblClick) { // QWidget keeps the Qt4 behavior where the DblClick event would replace the Press event. // QtQuick is different by sending both the Press and DblClick events for the second press diff --git a/src/webenginewidgets/webenginewidgets.pro b/src/webenginewidgets/webenginewidgets.pro index f1bb86df4..abd487e5f 100644 --- a/src/webenginewidgets/webenginewidgets.pro +++ b/src/webenginewidgets/webenginewidgets.pro @@ -4,7 +4,7 @@ TARGET = QtWebEngineWidgets DEFINES += QT_BUILD_WEBENGINEWIDGETS_LIB QT += webenginecore widgets network quick -QT_PRIVATE += quick-private gui-private core-private quickwidgets +QT_PRIVATE += quick-private gui-private core-private widgets-private quickwidgets INCLUDEPATH += $$PWD api ../core ../core/api ../webengine/api |