From 48267b5403a5481679027664e7c466d701564e84 Mon Sep 17 00:00:00 2001 From: duanshaofei Date: Wed, 25 Jun 2025 11:41:50 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=85=89=E6=A0=87=E7=BC=A9?= =?UTF-8?q?=E6=94=BE=E7=B2=97=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: duanshaofei --- frameworks/core/components/web/resource/web_delegate.cpp | 9 +++++++++ frameworks/core/components/web/resource/web_delegate.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/frameworks/core/components/web/resource/web_delegate.cpp b/frameworks/core/components/web/resource/web_delegate.cpp index 4f65e87e4fd..c149c859036 100644 --- a/frameworks/core/components/web/resource/web_delegate.cpp +++ b/frameworks/core/components/web/resource/web_delegate.cpp @@ -6040,6 +6040,9 @@ void WebDelegate::OnResourceLoad(const std::string& url) void WebDelegate::OnScaleChange(float oldScaleFactor, float newScaleFactor) { CHECK_NULL_VOID(taskExecutor_); + if (oldScaleFactor != newScaleFactor) { + SetViewportScaleState(); + } taskExecutor_->PostTask( [weak = WeakClaim(this), oldScaleFactor, newScaleFactor]() { auto delegate = weak.Upgrade(); @@ -8532,4 +8535,10 @@ void WebDelegate::SetBorderRadiusFromWeb(double borderRadiusTopLeft, double bord borderRadiusTopLeft, borderRadiusTopRight, borderRadiusBottomLeft, borderRadiusBottomRight); } +void WebDelegate::SetViewportScaleState() +{ + CHECK_NULL_VOID(nweb_); + nweb_->SetViewportScaleState(); +} + } // namespace OHOS::Ace diff --git a/frameworks/core/components/web/resource/web_delegate.h b/frameworks/core/components/web/resource/web_delegate.h index 46c704d301a..b400d2b588a 100644 --- a/frameworks/core/components/web/resource/web_delegate.h +++ b/frameworks/core/components/web/resource/web_delegate.h @@ -1258,6 +1258,8 @@ public: void SetBorderRadiusFromWeb(double borderRadiusTopLeft, double borderRadiusTopRight, double borderRadiusBottomLeft, double borderRadiusBottomRight); + void SetViewportScaleState(); + private: void InitWebEvent(); void RegisterWebEvent(); -- Gitee