Explorar o código

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.
AnotherTest %!s(int64=4) %!d(string=hai) anos
pai
achega
b532b2d3ca
Modificáronse 1 ficheiros con 5 adicións e 0 borrados
  1. 5 0
      Applications/Spreadsheet/SpreadsheetWidget.cpp

+ 5 - 0
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);
     }