diff options
author | Szabolcs David <davidsz@inf.u-szeged.hu> | 2014-11-20 05:31:14 -0800 |
---|---|---|
committer | Szabolcs David <davidsz@inf.u-szeged.hu> | 2015-01-16 11:28:44 +0100 |
commit | db2f69bb58ab369e44ea8bb30dcdbe90660578a2 (patch) | |
tree | dd25a6b7561fedb8e7abc5cd61f19d74360ffaae /src/webenginewidgets | |
parent | e57b02dc9fe39a4ac8cc56f5d09eab4452a90210 (diff) |
Widgets: Implement mouse lock permission API
If the user grants the permission with mouse click on the feature
permission bar, the RenderWidgetHostView loses the focus but the
focus is necessary for the pointer lock.
Change-Id: Ifafd86b472e400c5690194dce2ea8a829a51c313
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Diffstat (limited to 'src/webenginewidgets')
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 12 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.h | 3 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage_p.h | 1 |
3 files changed, 15 insertions, 1 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index f5994d304..eafcf114c 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -352,6 +352,12 @@ void QWebEnginePagePrivate::runGeolocationPermissionRequest(const QUrl &security Q_EMIT q->featurePermissionRequested(securityOrigin, QWebEnginePage::Geolocation); } +void QWebEnginePagePrivate::runMouseLockPermissionRequest(const QUrl &securityOrigin) +{ + Q_Q(QWebEnginePage); + Q_EMIT q->featurePermissionRequested(securityOrigin, QWebEnginePage::MouseLock); +} + QObject *QWebEnginePagePrivate::accessibilityParentObject() { return view; @@ -817,6 +823,12 @@ void QWebEnginePage::setFeaturePermission(const QUrl &securityOrigin, QWebEngine case QWebEnginePage::Geolocation: d->adapter->runGeolocationRequestCallback(securityOrigin, (policy == PermissionGrantedByUser) ? true : false); break; + case MouseLock: + if (policy == PermissionGrantedByUser) + d->adapter->grantMouseLockPermission(true); + else + d->adapter->grantMouseLockPermission(false); + break; default: break; } diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index e70b90d10..4b9208117 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -154,7 +154,8 @@ public: #endif MediaAudioCapture = 2, MediaVideoCapture, - MediaAudioVideoCapture + MediaAudioVideoCapture, + MouseLock }; // Ex-QWebFrame enum diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h index 2f44bc732..a11c44ded 100644 --- a/src/webenginewidgets/api/qwebenginepage_p.h +++ b/src/webenginewidgets/api/qwebenginepage_p.h @@ -137,6 +137,7 @@ public: virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) Q_DECL_OVERRIDE; virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) Q_DECL_OVERRIDE; virtual void runGeolocationPermissionRequest(const QUrl &securityOrigin) Q_DECL_OVERRIDE; + virtual void runMouseLockPermissionRequest(const QUrl &securityOrigin) Q_DECL_OVERRIDE; virtual QObject *accessibilityParentObject() Q_DECL_OVERRIDE; virtual WebEngineSettings *webEngineSettings() const Q_DECL_OVERRIDE; virtual void allowCertificateError(const QExplicitlySharedDataPointer<CertificateErrorController> &controller) Q_DECL_OVERRIDE; |