Skip to content

Commit 3ca6fc5

Browse files
committed
Ensure the host window controller is destroyed before the lifecycle manager
1 parent 7817c3b commit 3ca6fc5

File tree

3 files changed

+3
-7
lines changed

3 files changed

+3
-7
lines changed

engine/src/flutter/shell/platform/windows/flutter_windows_engine.cc

+1
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ FlutterWindowsEngine::FlutterWindowsEngine(
239239

240240
FlutterWindowsEngine::~FlutterWindowsEngine() {
241241
messenger_->SetEngine(nullptr);
242+
host_window_controller_.reset();
242243
Stop();
243244
}
244245

engine/src/flutter/shell/platform/windows/flutter_windows_view.cc

+2-6
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,7 @@ FlutterWindowsView::FlutterWindowsView(
121121
FlutterWindowsView::~FlutterWindowsView() {
122122
// The view owns the child window.
123123
// Notify the engine the view's child window will no longer be visible.
124-
if (engine_->running()) {
125-
engine_->OnWindowStateEvent(GetWindowHandle(), WindowStateEvent::kHide);
126-
}
124+
engine_->OnWindowStateEvent(GetWindowHandle(), WindowStateEvent::kHide);
127125

128126
if (surface_) {
129127
DestroyWindowSurface(*engine_, std::move(surface_));
@@ -815,9 +813,7 @@ void FlutterWindowsView::OnDwmCompositionChanged() {
815813
}
816814

817815
void FlutterWindowsView::OnWindowStateEvent(HWND hwnd, WindowStateEvent event) {
818-
if (engine_->running()) {
819-
engine_->OnWindowStateEvent(hwnd, event);
820-
}
816+
engine_->OnWindowStateEvent(hwnd, event);
821817
}
822818

823819
bool FlutterWindowsView::NeedsVsync() const {

engine/src/flutter/shell/platform/windows/flutter_windows_view_unittests.cc

-1
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,6 @@ TEST(FlutterWindowsViewTest, Shutdown) {
279279
EXPECT_CALL(*engine_ptr, running).WillOnce(Return(true));
280280
EXPECT_CALL(*engine_ptr, RemoveView(view_id)).Times(1);
281281
EXPECT_CALL(*engine_ptr, running).WillOnce(Return(true));
282-
EXPECT_CALL(*engine_ptr, running).WillOnce(Return(true));
283282
EXPECT_CALL(*engine_ptr, PostRasterThreadTask)
284283
.WillOnce([](fml::closure callback) {
285284
callback();

0 commit comments

Comments
 (0)