diff --git a/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.cpp b/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.cpp index bcf6772822..c8d8c0cffa 100644 --- a/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.cpp +++ b/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.cpp @@ -29,6 +29,7 @@ # include # include # include +# include # include #endif @@ -155,10 +156,19 @@ bool ViewProviderSheet::onDelete(const std::vector &) if (sheetView) { sheetView->deleteSelection(); + return false; } } - return false; + // If the view is open but not active, try to close it. + // This may ask the user for permission in case it's the + // last view of the document. (#0003496) + QWidget* window = view; + QWidget* parent = view->parentWidget(); + if (qobject_cast(parent)) { + window = parent; + } + return window->close(); } SheetView *ViewProviderSheet::showSpreadsheetView()