summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Applications/Spreadsheet/Spreadsheet.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/Applications/Spreadsheet/Spreadsheet.cpp b/Applications/Spreadsheet/Spreadsheet.cpp
index 5a7504bc5c..6f419bcf16 100644
--- a/Applications/Spreadsheet/Spreadsheet.cpp
+++ b/Applications/Spreadsheet/Spreadsheet.cpp
@@ -299,6 +299,18 @@ void Sheet::copy_cells(Vector<Position> from, Vector<Position> to, Optional<Posi
return;
}
+ if (from.size() == 1) {
+ // Fill the target selection with the single cell.
+ auto& source = from.first();
+ for (auto& position : to) {
+#ifdef COPY_DEBUG
+ dbg() << "Paste from '" << source.to_url() << "' to '" << position.to_url() << "'";
+#endif
+ copy_to(source, resolve_relative_to.has_value() ? offset_relative_to(position, source, resolve_relative_to.value()) : position);
+ }
+ return;
+ }
+
// Just disallow misaligned copies.
dbg() << "Cannot copy " << from.size() << " cells to " << to.size() << " cells";
}