diff options
Diffstat (limited to 'Userland/Applications')
-rw-r--r-- | Userland/Applications/Spreadsheet/SpreadsheetWidget.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Userland/Applications/Spreadsheet/SpreadsheetWidget.cpp b/Userland/Applications/Spreadsheet/SpreadsheetWidget.cpp index d0499be60c..8d0b2abd5f 100644 --- a/Userland/Applications/Spreadsheet/SpreadsheetWidget.cpp +++ b/Userland/Applications/Spreadsheet/SpreadsheetWidget.cpp @@ -485,12 +485,18 @@ void SpreadsheetWidget::change_cell_static_color_format(Spreadsheet::FormatType auto dialog = GUI::ColorPicker::construct(Color::White, window(), "Select Color"); if (dialog->exec() == GUI::Dialog::ExecResult::OK) { + Vector<CellChange> cell_changes; for (auto& position : current_worksheet_if_available()->selected_cells()) { + auto* cell = current_worksheet_if_available()->at(position); + auto previous_type_metadata = cell->type_metadata(); if (format_type == Spreadsheet::FormatType::Background) - current_worksheet_if_available()->at(position)->type_metadata().static_format.background_color = dialog->color(); + cell->type_metadata().static_format.background_color = dialog->color(); else - current_worksheet_if_available()->at(position)->type_metadata().static_format.foreground_color = dialog->color(); + cell->type_metadata().static_format.foreground_color = dialog->color(); + cell_changes.append(CellChange(*cell, previous_type_metadata)); } + undo_stack().push(make<CellsUndoMetadataCommand>(move(cell_changes))); + window()->set_modified(true); } } |