diff --git a/Applications/Spreadsheet/SpreadsheetWidget.cpp b/Applications/Spreadsheet/SpreadsheetWidget.cpp index 7635c4ff39..57056558c1 100644 --- a/Applications/Spreadsheet/SpreadsheetWidget.cpp +++ b/Applications/Spreadsheet/SpreadsheetWidget.cpp @@ -142,6 +142,17 @@ void SpreadsheetWidget::setup_tabs(NonnullRefPtrVector new_sheets) }; m_selected_view = &static_cast(selected_widget); m_selected_view->on_selection_changed = [&](Vector&& selection) { + if (selection.is_empty()) { + m_current_cell_label->set_enabled(false); + m_current_cell_label->set_text({}); + m_cell_value_editor->on_change = nullptr; + m_cell_value_editor->on_focusin = nullptr; + m_cell_value_editor->on_focusout = nullptr; + m_cell_value_editor->set_text(""); + m_cell_value_editor->set_enabled(false); + return; + } + if (selection.size() == 1) { auto& position = selection.first(); StringBuilder builder; @@ -177,6 +188,7 @@ void SpreadsheetWidget::setup_tabs(NonnullRefPtrVector new_sheets) for (auto& position : selection) cells.append(&m_selected_view->sheet().ensure(position)); + auto first_cell = cells.first(); m_cell_value_editor->on_change = nullptr; m_cell_value_editor->set_text(""); m_should_change_selected_cells = false; @@ -195,7 +207,7 @@ void SpreadsheetWidget::setup_tabs(NonnullRefPtrVector new_sheets) } }; m_cell_value_editor->set_enabled(true); - static_cast(const_cast(m_cell_value_editor->syntax_highlighter()))->set_cell(cells.first()); + static_cast(const_cast(m_cell_value_editor->syntax_highlighter()))->set_cell(first_cell); }; m_selected_view->on_selection_dropped = [&]() { m_cell_value_editor->set_enabled(false);