From: Jiyun Yang Date: Wed, 7 Jul 2021 12:28:10 +0000 (+0900) Subject: Add WebView SetTtsFocus X-Git-Tag: dali_2.0.35~6^2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=218c58bb6854ca42475416c106b2edd58e24d6d6 Add WebView SetTtsFocus Change-Id: I94888109d21797fcf00fefd68843234f19379148 Signed-off-by: Jiyun Yang --- diff --git a/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp index 36258d4..302deb6 100755 --- a/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp @@ -1515,6 +1515,7 @@ int UtcDaliWebViewMethodsForCoverage(void) []( const std::string& arg ) { } ); + view.SetTtsFocus(true); DALI_TEST_CHECK( view ); diff --git a/dali-toolkit/devel-api/controls/web-view/web-view.cpp b/dali-toolkit/devel-api/controls/web-view/web-view.cpp index adeb66f..4d79404 100755 --- a/dali-toolkit/devel-api/controls/web-view/web-view.cpp +++ b/dali-toolkit/devel-api/controls/web-view/web-view.cpp @@ -309,6 +309,11 @@ void WebView::RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::Geolo Dali::Toolkit::GetImpl(*this).RegisterGeolocationPermissionCallback(callback); } +void WebView::SetTtsFocus(bool focused) +{ + Dali::Toolkit::GetImpl(*this).SetTtsFocus(focused); +} + WebView::WebViewPageLoadSignalType& WebView::PageLoadStartedSignal() { return Dali::Toolkit::GetImpl(*this).PageLoadStartedSignal(); diff --git a/dali-toolkit/devel-api/controls/web-view/web-view.h b/dali-toolkit/devel-api/controls/web-view/web-view.h index 8fb08b1..37c46f8 100755 --- a/dali-toolkit/devel-api/controls/web-view/web-view.h +++ b/dali-toolkit/devel-api/controls/web-view/web-view.h @@ -682,6 +682,14 @@ public: void RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback); /** + * @brief Set or unset TTS focus of the webview. + * @param[in] focused True if it is gained, false lost. + * @return true if succeeded, false otherwise. + * @note It only works when the webview does not have keyinput focus. If it has keyinput focus, the TTS focus is set automatically. + */ + void SetTtsFocus(bool focused); + + /** * @brief Connect to this signal to be notified when page loading is started. * * @return A signal object to connect with diff --git a/dali-toolkit/internal/controls/web-view/web-view-impl.cpp b/dali-toolkit/internal/controls/web-view/web-view-impl.cpp index 54e9026..5adfe5d 100644 --- a/dali-toolkit/internal/controls/web-view/web-view-impl.cpp +++ b/dali-toolkit/internal/controls/web-view/web-view-impl.cpp @@ -606,6 +606,14 @@ void WebView::RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::Geolo } } +void WebView::SetTtsFocus(bool focused) +{ + if(mWebEngine && !HasKeyInputFocus()) + { + mWebEngine.SetFocus(focused); + } +} + void WebView::UpdateDisplayArea(Dali::PropertyNotification& /*source*/) { if(!mWebEngine) diff --git a/dali-toolkit/internal/controls/web-view/web-view-impl.h b/dali-toolkit/internal/controls/web-view/web-view-impl.h index bbe7b27..a9917fd 100755 --- a/dali-toolkit/internal/controls/web-view/web-view-impl.h +++ b/dali-toolkit/internal/controls/web-view/web-view-impl.h @@ -308,6 +308,11 @@ public: void RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback); /** + * @copydoc Dali::Toolkit::WebView::SetTtsFocus() + */ + void SetTtsFocus(bool focused); + + /** * @copydoc Dali::Toolkit::WebView::PageLoadStartedSignal() */ Dali::Toolkit::WebView::WebViewPageLoadSignalType& PageLoadStartedSignal();