summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/webenginewidgets')
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp5
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp12
-rw-r--r--src/webenginewidgets/api/qwebengineview_p.h1
-rw-r--r--src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc4
-rw-r--r--src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp7
-rw-r--r--src/webenginewidgets/webenginewidgets.pro2
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