From 59c2536d34bf345fbbef29dc70656e879eba32e2 Mon Sep 17 00:00:00 2001 From: Jason Simmons Date: Wed, 29 Nov 2017 10:55:45 -0800 Subject: [PATCH] Set a pending dimension change in the animator only if the viewport's physical width/height changed (flutter/engine#4400) Fixes https://github.com/flutter/flutter/issues/13183 --- engine/src/flutter/shell/common/engine.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/engine/src/flutter/shell/common/engine.cc b/engine/src/flutter/shell/common/engine.cc index 6bb5977ac13..9372f7baa4a 100644 --- a/engine/src/flutter/shell/common/engine.cc +++ b/engine/src/flutter/shell/common/engine.cc @@ -343,11 +343,15 @@ void Engine::OnOutputSurfaceDestroyed(const fxl::Closure& gpu_continuation) { } void Engine::SetViewportMetrics(const blink::ViewportMetrics& metrics) { + bool dimensions_changed = + viewport_metrics_.physical_height != metrics.physical_height || + viewport_metrics_.physical_width != metrics.physical_width; viewport_metrics_ = metrics; if (runtime_) runtime_->SetViewportMetrics(viewport_metrics_); if (animator_) { - animator_->SetDimensionChangePending(); + if (dimensions_changed) + animator_->SetDimensionChangePending(); if (have_surface_) ScheduleFrame(); }