summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/webenginewidgets')
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp17
-rw-r--r--src/webenginewidgets/api/qwebenginepage.h3
-rw-r--r--src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc5
3 files changed, 21 insertions, 4 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 04f24c62a..80f780dde 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -46,6 +46,21 @@
QT_BEGIN_NAMESPACE
+static QWebEnginePage::WebWindowType toWindowType(WebContentsAdapterClient::WindowOpenDisposition disposition)
+{
+ switch (disposition) {
+ case WebContentsAdapterClient::NewForegroundTabDisposition:
+ case WebContentsAdapterClient::NewBackgroundTabDisposition:
+ return QWebEnginePage::WebBrowserTab;
+ case WebContentsAdapterClient::NewPopupDisposition:
+ return QWebEnginePage::WebDialog;
+ case WebContentsAdapterClient::NewWindowDisposition:
+ return QWebEnginePage::WebBrowserWindow;
+ default:
+ Q_UNREACHABLE();
+ }
+}
+
CallbackDirectory::~CallbackDirectory()
{
// "Cancel" pending callbacks by calling them with an invalid value.
@@ -245,7 +260,7 @@ void QWebEnginePagePrivate::adoptNewWindow(WebContentsAdapter *newWebContents, W
{
Q_Q(QWebEnginePage);
Q_UNUSED(userGesture);
- QWebEnginePage *newPage = q->createWindow(disposition == WebContentsAdapterClient::NewPopupDisposition ? QWebEnginePage::WebModalDialog : QWebEnginePage::WebBrowserWindow);
+ QWebEnginePage *newPage = q->createWindow(toWindowType(disposition));
// Overwrite the new page's WebContents with ours.
if (newPage && newPage->d_func() != this) {
newPage->d_func()->adapter = newWebContents;
diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h
index fcec92f85..eea7b52d2 100644
--- a/src/webenginewidgets/api/qwebenginepage.h
+++ b/src/webenginewidgets/api/qwebenginepage.h
@@ -261,7 +261,8 @@ public:
enum WebWindowType {
WebBrowserWindow,
- WebModalDialog
+ WebBrowserTab,
+ WebDialog
};
enum PermissionPolicy {
diff --git a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
index 54569bdc5..225ad5a48 100644
--- a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
+++ b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
@@ -279,8 +279,9 @@
This enum describes the types of window that can be created by the createWindow() function.
- \value WebBrowserWindow The window is a regular web browser window.
- \value WebModalDialog The window acts as modal dialog.
+ \value WebBrowserWindow The page should be opened in a complete web browser window.
+ \value WebBrowserTab The page should be opened as a web browser tab.
+ \value WebDialog The page should be opened in a window without decoration.
*/
/*!