From 7996d90a3fd66ee3811d50945052a755bb09d762 Mon Sep 17 00:00:00 2001 From: tengfan66 Date: Thu, 26 Dec 2024 19:45:15 +0800 Subject: [PATCH] 2267 Signed-off-by: tengfan66 Change-Id: I7a91e9c8b830fa357f58e66eb6d401697e79911b --- ohos_nweb/src/cef_delegate/nweb_delegate.cc | 37 +++++++++++++-------- ohos_nweb/src/cef_delegate/nweb_delegate.h | 2 ++ ohos_nweb/src/nweb_delegate_interface.h | 10 +++++- ohos_nweb/src/nweb_impl.cc | 18 +++++++++- ohos_nweb/src/nweb_impl.h | 1 + 5 files changed, 52 insertions(+), 16 deletions(-) diff --git a/ohos_nweb/src/cef_delegate/nweb_delegate.cc b/ohos_nweb/src/cef_delegate/nweb_delegate.cc index b0bc56e4de..53d535399f 100644 --- a/ohos_nweb/src/cef_delegate/nweb_delegate.cc +++ b/ohos_nweb/src/cef_delegate/nweb_delegate.cc @@ -4030,20 +4030,6 @@ std::string NWebDelegate::GetLastJavascriptProxyCallingFrameUrl() { #endif int NWebDelegate::ScaleGestureChange(double scale, double centerX, double centerY) const { - LOG(DEBUG) << "NWebDelegate::ScaleGestureChange"; - if (!preference_delegate_) { - LOG(ERROR) << "preference_delegate_ get fail"; - return NWEB_ERR; - } - if (!preference_delegate_->ZoomingfunctionEnabled()) { - return NWEB_FUNCTION_NOT_ENABLE; - } - if (!GetBrowser().get()) { - LOG(ERROR) << "NWebDelegate::ScaleGestrueChange can not get browser"; - return NWEB_ERR; - } - LOG(DEBUG) << "NWebDelegate::ScaleGestureChange ZoomBY centerX:" << "centerY:" << centerY; - GetBrowser()->GetHost()->ZoomBy(scale, centerX * 2, centerY * 2); return NWEB_OK; } @@ -4344,4 +4330,27 @@ void NWebDelegate::CloseDevtools() { GetBrowser()->GetHost()->CloseDevTools(); } +int NWebDelegate::ScaleGestureChangeV2(int type, + double scale, + double originScale, + double centerX, + double centerY) const { + LOG(DEBUG) << "NWebDelegate::ScaleGestureChangeV2"; + if (!preference_delegate_) { + LOG(ERROR) << "preference_delegate_ get fail"; + return NWEB_ERR; + } + if (!preference_delegate_->ZoomingfunctionEnabled()) { + return NWEB_FUNCTION_NOT_ENABLE; + } + if (!GetBrowser().get()) { + LOG(ERROR) << "NWebDelegate::ScaleGestureChangeV2 can not get browser"; + return NWEB_ERR; + } + + GetBrowser()->GetHost()->ScaleGestureChangeV2( + type, scale, originScale, centerX / default_virtual_pixel_ratio_, + centerY / default_virtual_pixel_ratio_); + return NWEB_OK; +} } // namespace OHOS::NWeb diff --git a/ohos_nweb/src/cef_delegate/nweb_delegate.h b/ohos_nweb/src/cef_delegate/nweb_delegate.h index 81d6a10ca5..245c15e2db 100644 --- a/ohos_nweb/src/cef_delegate/nweb_delegate.h +++ b/ohos_nweb/src/cef_delegate/nweb_delegate.h @@ -255,6 +255,8 @@ class NWebDelegate : public NWebDelegateInterface, public virtual CefRefCount { int ScaleGestureChange(double scale, double centerX, double centerY) const override; + int ScaleGestureChangeV2(int type, double scale, double originScale, double centerX, double centerY) const override; + #if defined(OHOS_MSGPORT) uint32_t runJSCallbackId_ = 0; std::unordered_map> runJSCallbackMap_; diff --git a/ohos_nweb/src/nweb_delegate_interface.h b/ohos_nweb/src/nweb_delegate_interface.h index 5cb7b95305..d4efcc06ea 100644 --- a/ohos_nweb/src/nweb_delegate_interface.h +++ b/ohos_nweb/src/nweb_delegate_interface.h @@ -501,7 +501,15 @@ class NWebDelegateInterface virtual NWebDownloadItemState GetDownloadItemState(long item_id) = 0; #endif -virtual int ScaleGestureChange(double scale, double centerX, double centerY) const = 0; + virtual int ScaleGestureChange(double scale, + double centerX, + double centerY) const = 0; + + virtual int ScaleGestureChangeV2(int type, + double scale, + double originScale, + double centerX, + double centerY) const = 0; #if defined(OHOS_SCREEN_LOCK) virtual void SetWakeLockCallback(int32_t windowId, const std::shared_ptr& callback) = 0; diff --git a/ohos_nweb/src/nweb_impl.cc b/ohos_nweb/src/nweb_impl.cc index ca65a6a2bf..f43686ba74 100644 --- a/ohos_nweb/src/nweb_impl.cc +++ b/ohos_nweb/src/nweb_impl.cc @@ -3410,7 +3410,8 @@ std::string NWebImpl::GetDefaultUserAgent() { } int NWebImpl::ScaleGestureChange(double scale, double centerX, double centerY) { - LOG(INFO) << "NWebImpl::ScaleGestureChange scale:" << scale << " centerX: " << centerX << " centerY: " << centerY; + LOG(DEBUG) << "NWebImpl::ScaleGestureChange scale:" << scale + << " centerX: " << centerX << " centerY: " << centerY; if (nweb_delegate_ == nullptr) { LOG(ERROR) << "nweb_delegate_ is nullptr."; return NWEB_ERR; @@ -3901,3 +3902,18 @@ void NWebImpl::TrimMemoryByPressureLevel(int32_t memoryLevel) { base::MemoryPressureListener::NotifyMemoryPressure(memory_pressure_level); #endif // OHOS_PERFORMANCE_MEMORY_THRESHOLD } + +int NWebImpl::ScaleGestureChangeV2(int type, + double scale, + double originScale, + double centerX, + double centerY) { + LOG(DEBUG) << "NWebImpl::ScaleGestureChangeV2 type:" << type + << " scale:" << scale << " originScale: " << originScale + << " centerX: " << centerX << " centerY: " << centerY; + if (nweb_delegate_ == nullptr) { + LOG(ERROR) << "nweb_delegate_ is nullptr."; + return NWEB_ERR; + } + return nweb_delegate_->ScaleGestureChangeV2(type, scale, originScale, centerX, centerY); +} \ No newline at end of file diff --git a/ohos_nweb/src/nweb_impl.h b/ohos_nweb/src/nweb_impl.h index 07955c90ff..7eac087796 100644 --- a/ohos_nweb/src/nweb_impl.h +++ b/ohos_nweb/src/nweb_impl.h @@ -534,6 +534,7 @@ class NWebImpl : public NWeb { static void WarmupServiceWorker(const std::string &url); int ScaleGestureChange(double scale, double centerX, double centerY) override; + int ScaleGestureChangeV2(int type, double scale, double originScale, double centerX, double centerY) override; static void SetHostIP(const std::string &hostName, const std::string &address, int32_t aliveTime); static void ClearHostIP(const std::string &hostName); -- Gitee