X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ef20428e992975d27f38c8eeefa0f4c5006e7589..cb41a69b152026d6c586d21148e34913291cd733:/src/common/cmdproc.cpp diff --git a/src/common/cmdproc.cpp b/src/common/cmdproc.cpp index ed7efb3e3f..54f14ea028 100644 --- a/src/common/cmdproc.cpp +++ b/src/common/cmdproc.cpp @@ -4,7 +4,6 @@ // Author: Julian Smart (extracted from docview.h by VZ) // Modified by: // Created: 05.11.00 -// RCS-ID: $Id$ // Copyright: (c) wxWidgets team // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -330,12 +329,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; }