summaryrefslogtreecommitdiff
path: root/Userland/Applications
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Applications')
-rw-r--r--Userland/Applications/Spreadsheet/SpreadsheetWidget.cpp10
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);
}
}