Code

Fix for #1684042 (undo while adding a shape with the mouse results in a crash.)
[inkscape.git] / src / event-log.cpp
index 08fb45f9b79422a0bd1c0248def448f790e33a44..d6bc99bea8a34e195cb2c0331413bc0136d5c355 100644 (file)
@@ -42,6 +42,9 @@ EventLog::notifyUndoEvent(Event* log)
 {
     if ( !_notifications_blocked ) {
     
+        // make sure the supplied event matches the next undoable event
+        g_return_if_fail ( _getUndoEvent() && (*(_getUndoEvent()))[_columns.event] == log );
+
         // if we're on the first child event...
         if ( _curr_event->parent() &&
              _curr_event == _curr_event->parent()->children().begin() )
@@ -93,6 +96,9 @@ EventLog::notifyRedoEvent(Event* log)
 {
     if ( !_notifications_blocked ) {
 
+        // make sure the supplied event matches the next redoable event
+        g_return_if_fail ( _getRedoEvent() && (*(_getRedoEvent()))[_columns.event] == log );
+
         // if we're on a parent event...
         if ( !_curr_event->children().empty() ) {
 
@@ -207,6 +213,7 @@ EventLog::notifyUndoCommitEvent(Event* log)
 
     _curr_event = _last_event = curr_row;
 
+    curr_row[_columns.event] = log;
     curr_row[_columns.type] = event_type;
     curr_row[_columns.description] = log->description;