diff --git a/libcef/browser/osr/browser_platform_delegate_osr.cc b/libcef/browser/osr/browser_platform_delegate_osr.cc index 17d47b31dc7b8233f0faa30e6e9ec2bd718e4ada..ba012a810fbeecdeebfa74155a97c5a7fa2a7d16 100644 --- a/libcef/browser/osr/browser_platform_delegate_osr.cc +++ b/libcef/browser/osr/browser_platform_delegate_osr.cc @@ -187,6 +187,7 @@ void CefBrowserPlatformDelegateOsr::WasResized() { CefRenderWidgetHostViewOSR* view = GetOSRHostView(); if (view) { view->WasResized(); + view->SetDrawMode(drawMode_); } } @@ -1026,22 +1027,20 @@ CefRenderWidgetHostViewOSR* CefBrowserPlatformDelegateOsr::GetOSRHostView() #if defined(OHOS_COMPOSITE_RENDER) void CefBrowserPlatformDelegateOsr::SetDrawRect(int x, int y, int width, int height) { CefRenderWidgetHostViewOSR* view = GetOSRHostView(); + gfx::Rect newDrawRect = gfx::Rect(x, y, width, height); if (view) { - if (isNeedReDrawMode_) { - view->SetDrawMode(drawMode_); - } - isNeedReDrawMode_ = false; - view->SetDrawRect(gfx::Rect(x, y, width, height)); + drawRect_ = newDrawRect; + LOG(DEBUG) << "CefBrowserPlatformDelegateOsr::SetDrawRect, drawRect:" << drawRect_.ToString().c_str(); + view->SetDrawRect(drawRect_); } } void CefBrowserPlatformDelegateOsr::SetDrawMode(int mode) { - if (drawMode_ == mode) { - isNeedReDrawMode_ = false; - return; - } + CefRenderWidgetHostViewOSR* view = GetOSRHostView(); drawMode_ = mode; - isNeedReDrawMode_ = true; + if (view) { + view->SetDrawMode(drawMode_); + } } void CefBrowserPlatformDelegateOsr::SetFitContentMode(int mode) { diff --git a/libcef/browser/osr/browser_platform_delegate_osr.h b/libcef/browser/osr/browser_platform_delegate_osr.h index 3e5c1208d7f3f18893f12147c46786215e0d8290..2a36be4bfd5d254cc3d0688bd33c0617bc305191 100644 --- a/libcef/browser/osr/browser_platform_delegate_osr.h +++ b/libcef/browser/osr/browser_platform_delegate_osr.h @@ -124,7 +124,7 @@ class CefBrowserPlatformDelegateOsr bool GetPendingSizeStatus() override; void SetFitContentMode(int mode) override; int drawMode_ = -1; - bool isNeedReDrawMode_ = false; + gfx::Rect drawRect_{0, 0, 0, 0}; int fit_content_mode_ = 0; #endif // defined(OHOS_COMPOSITE_RENDER)