@@ -1304,8 +1304,13 @@ void QgsVertexTool::onCachedGeometryChanged( QgsFeatureId fid, const QgsGeometry
1304
1304
// re-run validation for the feature
1305
1305
validateGeometry ( layer, fid );
1306
1306
1307
- if ( mVertexEditor && mLockedFeature && mLockedFeature ->featureId () == fid && mLockedFeature ->layer () == layer )
1308
- mVertexEditor ->updateEditor ( mLockedFeature .get () );
1307
+ if ( mLockedFeature && mLockedFeature ->featureId () == fid && mLockedFeature ->layer () == layer )
1308
+ {
1309
+ mLockedFeature ->geometryChanged ( fid, geom );
1310
+ if ( mVertexEditor )
1311
+ mVertexEditor ->updateEditor ( mLockedFeature .get () );
1312
+ updateLockedFeatureVertices ();
1313
+ }
1309
1314
}
1310
1315
1311
1316
void QgsVertexTool::onCachedGeometryDeleted ( QgsFeatureId fid )
@@ -1318,6 +1323,12 @@ void QgsVertexTool::onCachedGeometryDeleted( QgsFeatureId fid )
1318
1323
1319
1324
// refresh highlighted vertices - some may have been deleted
1320
1325
setHighlightedVertices ( mSelectedVertices );
1326
+
1327
+ if ( mLockedFeature && mLockedFeature ->featureId () == fid && mLockedFeature ->layer () == layer )
1328
+ {
1329
+ mLockedFeature ->featureDeleted ( fid );
1330
+ updateLockedFeatureVertices ();
1331
+ }
1321
1332
}
1322
1333
1323
1334
void QgsVertexTool::updateVertexEditor ( QgsVectorLayer *layer, QgsFeatureId fid )
@@ -1401,6 +1412,7 @@ void QgsVertexTool::cleanupVertexEditor()
1401
1412
{
1402
1413
mLockedFeature .reset ();
1403
1414
mVertexEditor .reset ();
1415
+ updateLockedFeatureVertices ();
1404
1416
}
1405
1417
1406
1418
void QgsVertexTool::cleanupLockedFeature ()
@@ -2022,6 +2034,7 @@ void QgsVertexTool::moveVertex( const QgsPointXY &mapPoint, const QgsPointLocato
2022
2034
}
2023
2035
}
2024
2036
2037
+ updateLockedFeatureVertices ();
2025
2038
if ( mVertexEditor )
2026
2039
mVertexEditor ->updateEditor ( mLockedFeature .get () );
2027
2040
0 commit comments