@@ -5234,14 +5234,15 @@ bool QgisApp::toggleEditing( QgsMapLayer *layer, bool allowCancel )
5234
5234
break ;
5235
5235
5236
5236
case QMessageBox::Discard:
5237
+ mMapCanvas ->freeze ( true );
5237
5238
if ( !vlayer->rollBack () )
5238
5239
{
5239
5240
QMessageBox::information ( 0 , tr ( " Error" ), tr ( " Problems during roll back" ) );
5240
5241
res = false ;
5241
5242
}
5243
+ mMapCanvas ->freeze ( false );
5242
5244
5243
- // canvas refreshes handled in QgsUndoWidget::indexChanged
5244
- // vlayer->triggerRepaint();
5245
+ vlayer->triggerRepaint ();
5245
5246
break ;
5246
5247
5247
5248
default :
@@ -5250,7 +5251,9 @@ bool QgisApp::toggleEditing( QgsMapLayer *layer, bool allowCancel )
5250
5251
}
5251
5252
else // layer not modified
5252
5253
{
5254
+ mMapCanvas ->freeze ( true );
5253
5255
vlayer->rollBack ();
5256
+ mMapCanvas ->freeze ( false );
5254
5257
res = true ;
5255
5258
vlayer->triggerRepaint ();
5256
5259
}
@@ -5306,6 +5309,7 @@ void QgisApp::cancelEdits( QgsMapLayer *layer, bool leaveEditable )
5306
5309
if ( vlayer == activeLayer () && leaveEditable )
5307
5310
mSaveRollbackInProgress = true ;
5308
5311
5312
+ mMapCanvas ->freeze ( true );
5309
5313
if ( !vlayer->rollBack () )
5310
5314
{
5311
5315
mSaveRollbackInProgress = false ;
@@ -5316,6 +5320,7 @@ void QgisApp::cancelEdits( QgsMapLayer *layer, bool leaveEditable )
5316
5320
.arg ( vlayer->name () )
5317
5321
.arg ( vlayer->commitErrors ().join ( " \n " ) ) );
5318
5322
}
5323
+ mMapCanvas ->freeze ( false );
5319
5324
5320
5325
if ( leaveEditable )
5321
5326
{
0 commit comments