summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets/api/qwebengineview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/webenginewidgets/api/qwebengineview.cpp')
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp37
1 files changed, 5 insertions, 32 deletions
diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp
index 3f3fdd7cd..c8fe9c383 100644
--- a/src/webenginewidgets/api/qwebengineview.cpp
+++ b/src/webenginewidgets/api/qwebengineview.cpp
@@ -48,6 +48,7 @@
#include <QAction>
#include <QMenu>
#include <QContextMenuEvent>
+#include <QStackedLayout>
QT_BEGIN_NAMESPACE
@@ -63,6 +64,7 @@ void QWebEngineViewPrivate::bind(QWebEngineView *view, QWebEnginePage *page)
oldView->d_func()->page = 0;
}
page->d_func()->view = view;
+ page->d_func()->adapter->reattachRWHV();
}
if (view) {
@@ -81,7 +83,6 @@ void QWebEngineViewPrivate::bind(QWebEngineView *view, QWebEnginePage *page)
QObject::connect(page, &QWebEnginePage::loadProgress, view, &QWebEngineView::loadProgress);
QObject::connect(page, &QWebEnginePage::loadFinished, view, &QWebEngineView::loadFinished);
QObject::connect(page, &QWebEnginePage::selectionChanged, view, &QWebEngineView::selectionChanged);
- page->setViewportSize(view->size());
}
}
@@ -94,10 +95,8 @@ QWebEngineViewPrivate::QWebEngineViewPrivate()
QWebEngineView::QWebEngineView(QWidget *parent)
: QWidget(*(new QWebEngineViewPrivate), parent, 0)
{
- setFocusPolicy(Qt::ClickFocus);
- setMouseTracking(true);
- setAttribute(Qt::WA_AcceptTouchEvents);
- setAttribute(Qt::WA_OpaquePaintEvent);
+ // This causes the child RenderWidgetHostViewQtDelegateWidgets to fill this widget.
+ setLayout(new QStackedLayout);
}
QWebEngineView::~QWebEngineView()
@@ -222,41 +221,15 @@ void QWebEngineView::setZoomFactor(qreal factor)
bool QWebEngineView::event(QEvent *ev)
{
- Q_D(QWebEngineView);
// We swallow spontaneous contextMenu events and synthethize those back later on when we get the
// HandleContextMenu callback from chromium
if (ev->type() == QEvent::ContextMenu) {
ev->accept();
return true;
-
- // Meta calls are not safe to forward to the page, as they could be widget specific (e.g. QWidgetPrivate::_q_showIfNotHidden)
- // ToolTip events need to be processed at the widget level for the tooltip to show.
- } else if (ev->type() == QEvent::MetaCall
- || ev->type() == QEvent::ToolTip)
- return QWidget::event(ev);
- if (d->page && d->page->event(ev))
- return true;
-
+ }
return QWidget::event(ev);
}
-void QWebEngineView::paintEvent(QPaintEvent *ev)
-{
- Q_D(QWebEngineView);
- if (!d->page)
- return;
- QPainter painter(this);
- d->page->render(&painter, QRegion(ev->rect()));
-}
-
-void QWebEngineView::resizeEvent(QResizeEvent *ev)
-{
- Q_D(QWebEngineView);
- if (!d->page)
- return;
- d->page->setViewportSize(ev->size());
-}
-
void QWebEngineView::contextMenuEvent(QContextMenuEvent *event)
{
QMenu *menu = page()->createStandardContextMenu();