X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/35f5a520e2e918dc53baa8c65468fc12416ca219..64ea838d8f4d1853b7d850db93ee565e901d099a:/src/common/cmdproc.cpp diff --git a/src/common/cmdproc.cpp b/src/common/cmdproc.cpp index f59886d0a5..5e8a253ccb 100644 --- a/src/common/cmdproc.cpp +++ b/src/common/cmdproc.cpp @@ -62,8 +62,8 @@ wxCommandProcessor::wxCommandProcessor(int maxCommands) #endif // wxUSE_MENUS #if wxUSE_ACCEL - m_undoAccelerator = '\t' + wxAcceleratorEntry(wxACCEL_CMD, 'Z').ToString(); - m_redoAccelerator = '\t' + wxAcceleratorEntry(wxACCEL_CMD, 'Y').ToString(); + m_undoAccelerator = '\t' + wxAcceleratorEntry(wxACCEL_CTRL, 'Z').ToString(); + m_redoAccelerator = '\t' + wxAcceleratorEntry(wxACCEL_CTRL, 'Y').ToString(); #endif // wxUSE_ACCEL m_lastSavedCommand = @@ -328,4 +328,28 @@ void wxCommandProcessor::ClearCommands() m_lastSavedCommand = wxList::compatibility_iterator(); } +bool wxCommandProcessor::IsDirty() const +{ + if ( m_commands.empty() ) + { + // If we have never been modified, we can't be dirty. + return false; + } + + if ( !m_lastSavedCommand ) + { + // If we have been modified but have never been saved, we're dirty. + return true; + } + + if ( !m_currentCommand ) + { + // This only happens if all commands were undone after saving the + // document: we're dirty then. + return true; + } + + // Finally if both iterators are valid, we may just compare them. + return m_currentCommand != m_lastSavedCommand; +}