From b532b2d3ca895f1dbc5c74fa7044c2ca7bafdeec Mon Sep 17 00:00:00 2001 From: AnotherTest Date: Sun, 29 Nov 2020 17:27:08 +0330 Subject: [PATCH] Spreadsheet: Clear callbacks on persistent widgets before tearing tabs down Otherwise changes to the widgets would cause all sorts of updates on half-deleted cells. Fixes #4171. --- Applications/Spreadsheet/SpreadsheetWidget.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Applications/Spreadsheet/SpreadsheetWidget.cpp b/Applications/Spreadsheet/SpreadsheetWidget.cpp index 36110fbe84..c1f6d448a1 100644 --- a/Applications/Spreadsheet/SpreadsheetWidget.cpp +++ b/Applications/Spreadsheet/SpreadsheetWidget.cpp @@ -175,6 +175,11 @@ void SpreadsheetWidget::load(const StringView& filename) GUI::MessageBox::show_error(window(), result.error()); return; } + + m_tab_widget->on_change = nullptr; + m_cell_value_editor->on_change = nullptr; + m_current_cell_label->set_text(""); + m_should_change_selected_cells = false; while (auto* widget = m_tab_widget->active_widget()) { m_tab_widget->remove_tab(*widget); }