diff --git a/eeschema/dialogs/dialog_lib_fields.cpp b/eeschema/dialogs/dialog_lib_fields.cpp index e9507aabdb..3e6f7d4258 100644 --- a/eeschema/dialogs/dialog_lib_fields.cpp +++ b/eeschema/dialogs/dialog_lib_fields.cpp @@ -853,6 +853,18 @@ void DIALOG_LIB_FIELDS::OnTableColSize(wxGridSizeEvent& aEvent) void DIALOG_LIB_FIELDS::OnCancel(wxCommandEvent& event) { + m_grid->CommitPendingChanges( true ); + + if( m_dataModel->IsEdited() ) + { + if( !HandleUnsavedChanges( this, _( "Save changes?" ), + [&]() -> bool + { + return TransferDataFromWindow(); + } ) ) + return; + } + EndModal( wxID_CANCEL ); }