diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/expression/ExpressionVMProvider.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/expression/ExpressionVMProvider.java index 0be570cf919..ba3b733c1f1 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/expression/ExpressionVMProvider.java +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/expression/ExpressionVMProvider.java @@ -360,7 +360,7 @@ public class ExpressionVMProvider extends AbstractDMVMProvider @Override public void expressionsAdded(IExpression[] expressions) { - expressionsListChanged(ExpressionsChangedEvent.Type.ADDED, expressions, -1); + expressionsListChanged(ExpressionsChangedEvent.Type.ADDED, expressions, DebugPlugin.getDefault().getExpressionManager().getExpressions().length - expressions.length); } @Override diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/expression/ExpressionVMProviderModelProxyStrategy.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/expression/ExpressionVMProviderModelProxyStrategy.java index c2ce5d9338e..a3ce8674645 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/expression/ExpressionVMProviderModelProxyStrategy.java +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/expression/ExpressionVMProviderModelProxyStrategy.java @@ -157,8 +157,13 @@ public class ExpressionVMProviderModelProxyStrategy extends DefaultVMModelProxyS case ADDED: // New expressions are always added one element before last. // Last element is the "Add new expression" element. + // Note: Index should be calculated when the IExpressionListener.expressionsAdded + // is called. If it's not, try to calculate it here based on parent count. int parentCount = parentDelta.getChildCount(); - parentDelta.addNode(element, parentCount > 1 ? parentCount - 2 : -1, IModelDelta.ADDED); + if (elementIdx == -1 && parentCount > 1) { + elementIdx = parentCount - 2; + } + parentDelta.addNode(element, elementIdx, IModelDelta.ADDED); break; case CHANGED: parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.CONTENT);