diff options
-rw-r--r-- | Applications/Spreadsheet/Spreadsheet.cpp | 12 |
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"; } |