X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ef20428e992975d27f38c8eeefa0f4c5006e7589..64ea838d8f4d1853b7d850db93ee565e901d099a:/src/common/cmdproc.cpp?ds=sidebyside diff --git a/src/common/cmdproc.cpp b/src/common/cmdproc.cpp index ed7efb3e3f..5e8a253ccb 100644 --- a/src/common/cmdproc.cpp +++ b/src/common/cmdproc.cpp @@ -330,12 +330,26 @@ void wxCommandProcessor::ClearCommands() bool wxCommandProcessor::IsDirty() const { - if ( !m_currentCommand ) + 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; + } - return m_lastSavedCommand != m_currentCommand; + // Finally if both iterators are valid, we may just compare them. + return m_currentCommand != m_lastSavedCommand; }