summaryrefslogtreecommitdiffstats
path: root/src/webengine
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-05-31 11:33:19 +0200
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-05-31 11:33:53 +0200
commitd2d5d24f86f12a2d1b0a6bc46c0d48306d7d2130 (patch)
treed67555a6c699c49a89ea10863b6c0e4c0c3f5cae /src/webengine
parentf9e951d0946fe0fcd51e9015108f92c46ecc8138 (diff)
parent42d864c86d8c85db7b2d42f8505d962a642e4c77 (diff)
Merge remote-tracking branch 'origin/5.6' into 5.7
Diffstat (limited to 'src/webengine')
-rw-r--r--src/webengine/api/qquickwebengineview.cpp16
-rw-r--r--src/webengine/api/qquickwebengineview_p_p.h3
-rw-r--r--src/webengine/doc/qtwebengine.qdocconf2
-rw-r--r--src/webengine/render_widget_host_view_qt_delegate_quick.cpp29
4 files changed, 48 insertions, 2 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 1b1dcec25..36a7b69b9 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -124,6 +124,8 @@ QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate()
, m_dpiScale(1.0)
, m_backgroundColor(Qt::white)
, m_defaultZoomFactor(1.0)
+ // QTBUG-53467
+ , m_menuEnabled(true)
{
// The gold standard for mobile web content is 160 dpi, and the devicePixelRatio expected
// is the (possibly quantized) ratio of device dpi to 160 dpi.
@@ -141,6 +143,8 @@ QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate()
// 1x, 2x, 3x etc assets that fit an integral number of pixels.
setDevicePixelRatio(qMax(1, qRound(webPixelRatio)));
}
+ if (platform == QLatin1Literal("eglfs"))
+ m_menuEnabled = false;
#ifndef QT_NO_ACCESSIBILITY
QAccessible::installFactory(&webAccessibleFactory);
#endif // QT_NO_ACCESSIBILITY
@@ -191,6 +195,12 @@ bool QQuickWebEngineViewPrivate::contextMenuRequested(const WebEngineContextMenu
{
Q_Q(QQuickWebEngineView);
+ if (!m_menuEnabled) {
+ qWarning("You are trying to open context menu on eglfs backend, which is not currently supported\n"
+ "See QTBUG-53467.");
+ return false;
+ }
+
// Assign the WebEngineView as the parent of the menu, so mouse events are properly propagated
// on OSX.
QObject *menu = ui()->addMenu(q, QString(), data.pos);
@@ -1075,6 +1085,12 @@ void QQuickWebEngineViewPrivate::startDragging(const content::DropData &dropData
adapter->startDragging(q_ptr->window(), dropData, allowedActions, pixmap, offset);
}
+bool QQuickWebEngineViewPrivate::isEnabled() const
+{
+ const Q_Q(QQuickWebEngineView);
+ return q->isEnabled();
+}
+
bool QQuickWebEngineView::isLoading() const
{
Q_D(const QQuickWebEngineView);
diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h
index 82a9e9612..909763614 100644
--- a/src/webengine/api/qquickwebengineview_p_p.h
+++ b/src/webengine/api/qquickwebengineview_p_p.h
@@ -187,6 +187,7 @@ public:
virtual void updateContentsSize(const QSizeF &size) Q_DECL_OVERRIDE;
void startDragging(const content::DropData &dropData, Qt::DropActions allowedActions,
const QPixmap &pixmap, const QPoint &offset) Q_DECL_OVERRIDE;
+ virtual bool isEnabled() const Q_DECL_OVERRIDE;
virtual QSharedPointer<QtWebEngineCore::BrowserContextAdapter> browserContextAdapter() Q_DECL_OVERRIDE;
QtWebEngineCore::WebContentsAdapter *webContentsAdapter() Q_DECL_OVERRIDE;
@@ -233,6 +234,8 @@ private:
qreal m_dpiScale;
QColor m_backgroundColor;
qreal m_defaultZoomFactor;
+ // QTBUG-53467
+ bool m_menuEnabled;
};
#ifndef QT_NO_ACCESSIBILITY
diff --git a/src/webengine/doc/qtwebengine.qdocconf b/src/webengine/doc/qtwebengine.qdocconf
index 6d946c9c9..009902080 100644
--- a/src/webengine/doc/qtwebengine.qdocconf
+++ b/src/webengine/doc/qtwebengine.qdocconf
@@ -40,8 +40,10 @@ tagfile = ../../../doc/qtwebengine/qtwebengine.tags
depends += qtcore \
qtgui \
+ qtlocation \
qtnetwork \
qtprintsupport \
+ qtpositioning \
qtqml \
qtquick \
qtquickcontrols \
diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
index 9ad86800c..5e39cc2b3 100644
--- a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
+++ b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
@@ -222,18 +222,33 @@ void RenderWidgetHostViewQtDelegateQuick::focusOutEvent(QFocusEvent *event)
void RenderWidgetHostViewQtDelegateQuick::mousePressEvent(QMouseEvent *event)
{
- if (!m_isPopup && (parentItem() && parentItem()->property("activeFocusOnPress").toBool()))
+ QQuickItem *parent = parentItem();
+ if (!m_isPopup && (parent && parent->property("activeFocusOnPress").toBool()))
forceActiveFocus();
+ if (parent && !parent->property("activeFocusOnPress").toBool() && !parent->hasActiveFocus()) {
+ event->ignore();
+ return;
+ }
m_client->forwardEvent(event);
}
void RenderWidgetHostViewQtDelegateQuick::mouseMoveEvent(QMouseEvent *event)
{
+ QQuickItem *parent = parentItem();
+ if (parent && !parent->property("activeFocusOnPress").toBool() && !parent->hasActiveFocus()) {
+ event->ignore();
+ return;
+ }
m_client->forwardEvent(event);
}
void RenderWidgetHostViewQtDelegateQuick::mouseReleaseEvent(QMouseEvent *event)
{
+ QQuickItem *parent = parentItem();
+ if (parent && !parent->property("activeFocusOnPress").toBool() && !parent->hasActiveFocus()) {
+ event->ignore();
+ return;
+ }
m_client->forwardEvent(event);
}
@@ -254,14 +269,24 @@ void RenderWidgetHostViewQtDelegateQuick::wheelEvent(QWheelEvent *event)
void RenderWidgetHostViewQtDelegateQuick::touchEvent(QTouchEvent *event)
{
+ QQuickItem *parent = parentItem();
if (event->type() == QEvent::TouchBegin && !m_isPopup
- && (parentItem() && parentItem()->property("activeFocusOnPress").toBool()))
+ && (parent && parent->property("activeFocusOnPress").toBool()))
forceActiveFocus();
+ if (parent && !parent->property("activeFocusOnPress").toBool() && !parent->hasActiveFocus()) {
+ event->ignore();
+ return;
+ }
m_client->forwardEvent(event);
}
void RenderWidgetHostViewQtDelegateQuick::hoverMoveEvent(QHoverEvent *event)
{
+ QQuickItem *parent = parentItem();
+ if (parent && !parent->property("activeFocusOnPress").toBool() && !parent->hasActiveFocus()) {
+ event->ignore();
+ return;
+ }
m_client->forwardEvent(event);
}